Reducing runtime complexity of long-running application services via dynamic profiling and dynamic bytecode adaptation for improved quality of service

  • Authors:
  • John Bergin;Liam Murphy

  • Affiliations:
  • University College Dublin, Dublin, Ireland;University College Dublin, Dublin, Ireland

  • Venue:
  • Proceedings of the 2007 workshop on Automating service quality: Held at the International Conference on Automated Software Engineering (ASE)
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a transparent optimisation framework for automatically improving run-time performance of component-based enterprise applications. Run-time performance is improved by automatically identifying and dynamically switching 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 allows 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 optimised 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 evaluate 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 application studied we showed a 49% marked improvement in the number of users serviced per second.