The gain of bandwidth depends obviously on the size of the implementation classes and the number of environments. As a rule of thumb it can be seen that if only small implementation classes for few environments are used, the adaptive version is less efficient than a conventional version. The efficency of adaptation increases with the size of implementation classes and the number of environments. A more quantitatively-oriented analysis of observed bandwith gains can be found in [Bra01].
The cost for gained bandwidth occurs as runtime overhead, which consists of two parts: for context awareness expression and for loading the implementation classes. To measure this runtime overhead the runtime of the different methods of the monolithic agent have been compared with the runtime of the adaptable agent.
|long running methods||+||++|
|big implementation classes||-||+|
|many different environments||-||++|
As expected, the runtime overhead for adaptation and loading implementation classes becomes negligible if the environment-dependent method has a long running time on a host, or if the agent uses the dynamically loaded method more than once. Table 1 gives an overview in which cases adaptation may be a better choice than the conventional conventional version in a monolithic agent.