Answers are grounded in this paper and cite their sources.
Programs that run on a Java virtual machine (JVM)-like Eclipse OpenJ9-are initially interpreted. To improve performance, a Just-in- Time (JIT) compiler may be employed at run time to translate the whole or parts of the program to native code, which can be executed directly instead of being interpreted. In certain environments, where the overhead of an optimizing compiler-the default Testarossa JIT-may be too high to be useful, adding a non-optimizing compiler may prove beneficial to reduce startup times. MicroJIT is such a template-based, lightweight JIT compiler that generates native code with low overhead. This native code runs faster than interpreting the source code, but slower than the optimized code generated by the full JIT compiler. This work proposes improvements to MicroJIT, which include handling polymorphism in a template-based compiler, incorporating exception handling, supporting floating-point types and implementing additional bytecodes. Polymorphism will allow for invocation of virtual methods in Java; exception handling will help maintain the normal desired flow in case of unexpected events; supporting floating-point types will enable compiling methods involving float and double data types; and additional bytecode implementation will increase the bytecode support of MicroJIT. The implementation was tested using the regression framework and evaluated using the DaCapo workloads, most of which depicted increased performance.
No takes yet. Share an insight, caveat, or question.
Kaur et al. (2024) studied this question.
Synapse has enriched 7 closely related papers on similar clinical questions. Consider them for comparative context: