Scalar replacement in the presence of conditional control flow
Software—Practice & Experience
Optimizing ML with run-time code generation
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
An evaluation of staged run-time optimizations in DyC
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Escape analysis for object-oriented languages: application to Java
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Distributed object implementations for interactive applications
IFIP/ACM International Conference on Distributed systems platforms
Adaptive optimization in the Jalapeño JVM
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Reducing garbage collector cache misses
Proceedings of the 2nd international symposium on Memory management
A framework for reducing the cost of instrumented code
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
A dynamic optimization framework for a Java just-in-time compiler
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Adaptive caching for demand prepaging
Proceedings of the 3rd international symposium on Memory management
Java Virtual Machine Specification
Java Virtual Machine Specification
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Adaptive data dissemination and caching for edge service architectures built with the J2EE
Proceedings of the 2004 ACM symposium on Applied computing
Quantifying the performance of garbage collection vs. explicit memory management
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Runtime specialization with optimistic heap analysis
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The runtime structure of object ownership
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Hi-index | 0.00 |
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.