Adaptive multi-level compilation in a trace-based Java JIT compiler

Adaptive multi-level compilation in a trace-based Java JIT compiler
复制标题

基于跟踪的 Java JIT 编译器中的自适应多级编译

DOI:
--
复制
发表时间:
2012
期刊:
Conference on Object-Oriented Programming Systems, Languages, and Applications
影响因子:
--
通讯作者:
T. Nakatani
T. Nakatani
中科院分区:
--
文献类型:
--
作者:
H. Inoue;H. Hayashizaki;Peng Wu;T. Nakatani

文献摘要

被引文献

相似文献

本文介绍了我们在基于跟踪的Java JIT编译器(Trace-jit)中实现的多级汇编技术。就像现有的基于方法的编译器的多级汇编一样,我们以较小的汇编范围和低优化级别开始JIT编译,因此程序可以快速开始运行。然后,我们使用基于计时器的采样探测器来识别热路径,生成捕获热路径的长轨迹,并以高优化水平重新编译它们以提高峰值性能。高性能的关键是选择有效捕获整个热门路径以进行升级的延长轨迹。为此,我们引入了一种新技术,以生成代表控制流,TTGraph的有向图,并在跟踪选择引擎中使用TTGRAPH来有效地选择长轨迹。我们表明,与仅在低优化水平下编制所有痕迹相比,我们的多层次汇编平均将程序的峰值性能提高了58.5%和22.2%。将性能与我们的多级汇编与性能进行比较时,在以高优化水平编译所有轨迹时,我们的技术可以将程序的启动时间降低61.1%,平均31.3%,而无需大幅度降低峰值性能的启动时间。我们的结果表明,我们的自适应多层次汇编可以利用不同的优化水平来平衡峰值性能和启动时间。
This paper describes our multi-level compilation techniques implemented in a trace-based Java JIT compiler (trace-JIT). Like existing multi-level compilation for method-based compilers, we start JIT compilation with a small compilation scope and a low optimization level so the program can start running quickly. Then we identify hot paths with a timer-based sampling profiler, generate long traces that capture the hot paths, and recompile them with a high optimization level to improve the peak performance. A key to high performance is selecting long traces that effectively capture the entire hot paths for upgrade recompilations. To do this, we introduce a new technique to generate a directed graph representing the control flow, a TTgraph, and use the TTgraph in the trace selection engine to efficiently select long traces. We show that our multi-level compilation improves the peak performance of programs by up to 58.5% and 22.2% on average compared to compiling all of the traces only at a low optimization level. Comparing the performance with our multi-level compilation to the performance when compiling all of the traces at a high optimization level, our technique can reduce the startup times of programs by up to 61.1% and 31.3% on average without significant reduction in the peak performance. Our results show that our adaptive multi-level compilation can balance the peak performance and startup time by taking advantage of different optimization levels.