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 Runtime Environment(JRE)Java Virtual Machine (JVM)分层执行和JRE JVM解释执行相对于现代多核架构和现代并发和并行基准工作负载的性能差异。本文旨在通过展示比较这两种执行模型在Renaissance Benchmark Suite的负载下的性能的研究结果来填补这一研究空白。此研究与任何希望了解及时编译代码和解释执行之间性能差异的人有关。它提供了有关解释型JVM核心,即字节码执行的入口和起点,与及时分层执行之间差异的现代评估。本研究考虑了JRE版本、用于JRE构建工具链的GNU GCC版本以及在运行时指定的垃圾收集器算法等因素,以及它们对解释和分层执行之间性能差异的影响。我们的发现表明,相对于解释执行,层级执行效率更高,性能差距已经增加,范围从4倍到37倍更高效。平均而言,分层执行比解释执行约高效15倍。此外,解释和分层执行之间的性能差异受工作负载类别的影响,针对基于Web的工作负载观察到较窄的性能差异,而在Functional和Scala类型的工作负载中观察到更显着的性能差异。