Selective compilation via fast code analysis and bytecode tracing
Giovanni Agosta, Stefano Crespi Reghizzi, P. Palumbo, Martino Sykora
Abstract
Giovanni Agosta, Stefano Crespi Reghizzi, P. Palumbo, Martino Sykora
Abstract
Modern Java Virtual Machines (JVM) commonly adopt Just-In-Time (JIT) compilation to speed up the execution of Java Bytecode. However, the effort of compiling a region of code is only worth if the code is frequently executed. Therefore, Selective Compilation is employed so that the JIT compiler is only invoked on those regions of code where most of the computation is performed (hot spots). The core task in Selective Compilation is to correctly identify the hot spots in a program. In our SeleKaffe prototype virtual machine, we introduce two heuristics aimed at detecting hot spots both statically, via bytecode analysis, and dynamically, via profiling information. Experimental results on a representative set of benchmarks show that our method selection strategy is more accurate than known strategies, and not significantly slower.
OpenAlex reports 6 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Modern Java Virtual Machines (JVM) commonly adopt Just-In-Time (JIT) compilation to speed up the execution of Java Bytecode. However, the effort of compiling a region of code is only worth if the code is frequently executed. Therefore, Selective Compilation is employed so that the JIT compiler is only invoked on those regions of code where most of the computation is performed (hot spots). The core task in Selective Compilation is to correctly identify the hot spots in a program. In our SeleKaffe prototype virtual machine, we introduce two heuristics aimed at detecting hot spots both statically, via bytecode analysis, and dynamically, via profiling information. Experimental results on a representative set of benchmarks show that our method selection strategy is more accurate than known strategies, and not significantly slower.
Key concepts: Bytecode, Computer science, Programming language, Just-in-time compilation, Compiler, Java, Java bytecode, Tracing