Although the advantages of just-in-time compilation over traditional interpretive execution are widely recognised, there needs to be more current research investigating and repositioning the performance differences between these two execution models relative to contemporary workloads. Specifically, there is a need to examine the performance differences between Java Runtime Environment (JRE) Java Virtual Machine (JVM) tiered execution and JRE JVM interpretive execution relative to modern multicore architectures and modern concurrent and parallel benchmark workloads. This article aims to fill this research gap by presenting the results of a study that compares the performance of these two execution models under load from the Renaissance Benchmark Suite. This research is relevant to anyone interested in understanding the performance differences between just-in-time compiled code and interpretive execution. It provides a contemporary assessment of the interpretive JVM core, the entry and starting point for bytecode execution, relative to just-in-time tiered execution. The study considers factors such as the JRE version, the GNU GCC version used in the JRE build toolchain, and the garbage collector algorithm specified at runtime, and their impact on the performance difference envelope between interpretive and tiered execution. Our findings indicate that tiered execution is considerably more efficient than interpretive execution, and the performance gap has increased, ranging from 4 to 37 times more efficient. On average, tiered execution is approximately 15 times more efficient than interpretive execution. Additionally, the performance differences between interpretive and tiered execution are influenced by workload category, with narrower performance differences observed for web-based workloads and more significant differences for Functional and Scala-type workloads.
翻译:尽管即时编译相较于传统解释执行的优点已广为人知,但目前仍需更多研究来探究并重新定位这两种执行模式在现代工作负载下的性能差异。具体而言,有必要考察Java运行时环境(JRE)Java虚拟机(JVM)分层执行与JRE JVM解释执行在现代多核架构以及现代并发和并行基准测试工作负载下的性能差异。本文旨在通过展示一项研究结果来填补这一研究空白,该研究比较了在Renaissance基准套件负载下这两种执行模式的性能。这项研究对任何有兴趣了解即时编译代码与解释执行之间性能差异的人都有参考价值。它提供了对解释型JVM核心(字节码执行的入口和起点)相对于即时分层执行的当代评估。研究考虑了JRE版本、JRE构建工具链中使用的GNU GCC版本以及在运行时指定的垃圾回收器算法等因素,以及它们对解释执行与分层执行之间性能差异范围的影响。我们的研究结果表明,分层执行的效率远高于解释执行,且性能差距已扩大,效率提升范围在4到37倍之间。平均而言,分层执行的效率约为解释执行的15倍。此外,解释执行与分层执行之间的性能差异受工作负载类别影响,在基于Web的工作负载中性能差异较小,而在函数式和Scala类型的工作负载中差异更为显著。