Publication Type:

Conference Proceedings

Authors:

J.Bergin; L.Murphy

Source:

Workshop on Automating Service Quality, Performance Engineering Lab, Atlanta USA (2007)

Keywords:

adaptation; Optimisation; Caching; Profiling; Object Caching; Java Language

Abstract:

We present a transparent optimisation framework for au-
tomatically improving run-time performance of component-
based enterprise applications. Run-time performance is im-
proved by automatically identifying and dynamically switch-
ing to an optimised but functionally equivalent program
flow, for a specific transaction type. More precisely, one
or more application components can have both static and
dynamic inputs, where the former and its output remain
mostly fixed from invocation-to-invocation, while the latter
is unconstrained. Through dynamic profiling and run-time
adaptation, an optimised program flow is derived, that al-
lows only future execution of program points that operate
on dynamic inputs and not static inputs. During execution,
a target application is instrumented to switch to an opti-
mised program flow. Additional instrumentation occurs to
profile key program points that may invalidate an optimised
program flow. If these points execute, then the application
reverts back to its pre-optimised program flow. We evalu-
ate and demonstrate how run-time performance for a typical
thre-tired enterprise system can be improved for frequently
accessed data that remains mostly static. For the applica-
tion studied we showed a 49% marked improvement in the
number of users serviced per second.

AttachmentSize
reducing.pdf112.34 KB