Abstract | ||
---|---|---|
Modern JIT compilers often employ multi-level recompilation strategies as a means of ensuring the most used code is also the most highly optimized, balancing optimization costs and expected future performance. Accurate selection of code to compile and level of optimization to apply is thus important to performance. In this paper we investigate the effect of an improved recompilation strategy for a Java virtual machine. Our design makes use of a lightweight, low-level profiling mechanism to detect high-level, variable length phases in program execution. Phases are then used to guide adaptive recompilation choices, improving performance. We develop both an offline implementation based on trace data and a self-contained online version. Our offline study shows an average speedup of 8.7% and up to 21%, and our online system achieves an average speedup of 4.4%, up to 18%. We subject our results to extensive analysis and show that our design achieves good overall performance with high consistency despite the existence of many complex and interacting factors in such an environment. |
Year | DOI | Venue |
---|---|---|
2008 | 10.1145/1356058.1356062 | CGO |
Keywords | Field | DocType |
adaptive recompilation choice,average speedup,offline implementation,multi-level recompilation strategy,phase-based adaptive recompilation,online system,improved recompilation strategy,future performance,optimization cost,offline study,good overall performance,adaptive optimization,java,virtual machine | Virtual machine,Adaptive optimization,Profiling (computer programming),Computer science,Parallel computing,Real-time computing,Compiler,Java,Operating system,Java virtual machine,Speedup | Conference |
ISSN | Citations | PageRank |
2164-2397 | 12 | 0.67 |
References | Authors | |
37 | 2 |
Name | Order | Citations | PageRank |
---|---|---|---|
Dayong Gu | 1 | 35 | 2.43 |
Clark Verbrugge | 2 | 411 | 39.15 |