Adaptive Multi-Level Compilation in a Trace-based Java']Java JIT Compiler

被引:8
作者
Inoue, Hiroshi [1 ]
Hayashizaki, Hiroshige [1 ]
Wu, Peng [2 ]
Nakatani, Toshio [1 ]
机构
[1] IBM Res Tokyo, Tokyo, Japan
[2] IBM Res TJ Watson Res Ctr, Yorktown Hts, NY USA
关键词
Algorithms; Experimentation; Performance; Trace selection and compilation; JIT compiler; profiling; !text type='Java']Java[!/text; OPTIMIZATION; PERFORMANCE;
D O I
10.1145/2398857.2384630
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 multilevel 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 multilevel compilation can balance the peak performance and startup time by taking advantage of different optimization levels.
引用
收藏
页码:179 / 193
页数:15
相关论文
共 22 条
  • [1] [Anonymous], 2000, PLDI '00
  • [2] Adaptive optimization in the Jalapeno JVM
    Arnold, M
    Fink, S
    Grove, D
    Hind, M
    Sweeney, PF
    [J]. ACM SIGPLAN NOTICES, 2000, 35 (10) : 47 - 65
  • [3] Bebenita M., 2010, PPPJ, P59
  • [4] SPUR: A Trace-Based JIT Compiler for CIL
    Bebenita, Michael
    Brandner, Florian
    Fahndrich, Manuel
    Logozzo, Francesco
    Schulte, Wolfram
    Tillmann, Nikolai
    Venter, Herman
    [J]. ACM SIGPLAN NOTICES, 2010, 45 (10) : 708 - 725
  • [5] The DaCapo benchmarks: Java']Java benchmarking development and analysis
    Blackburn, Stephen M.
    Garner, Robin
    Hoffmann, Chris
    Khan, Asjad M.
    McKinley, Kathryn S.
    Bentzur, Rotem
    Diwan, Amer
    Feinberg, Daniel
    Frampton, Daniel
    Guyer, Samuel Z.
    Hirzel, Martin
    Hosking, Antony
    Jump, Maria
    Lee, Han
    Moss, J. Eliot B.
    Phansalkar, Aashish
    Stefanovic, Darko
    VanDrunen, Thomas
    von Dincklage, Daniel
    Wiedermann, Ben
    [J]. ACM SIGPLAN NOTICES, 2006, 41 (10) : 169 - 190
  • [6] Bolz Carl Friedrich, 2009, ICOOOLPS, P18, DOI [10.1145/1565824.1565827, DOI 10.1145/1565824.1565827]
  • [7] Cheng B., 2010, GOOGL I O DEV C
  • [8] Gal A., 2006, VEE 2006. Proceedings of the Second International Conference on Virtual Execution Environments, P144
  • [9] Gal A., 2006, THESIS U CALIFORNIA
  • [10] Trace-based Just-in-Time Type Specialization for Dynamic Languages
    Gal, Andreas
    Eich, Brendan
    Shaver, Mike
    Anderson, David
    Mandelin, David
    Haghighat, Mohammad R.
    Kaplan, Blake
    Hoare, Graydon
    Zbarsky, Boris
    Orendorff, Jason
    Ruderman, Jesse
    Smith, Edwin
    Reitmaier, Rick
    Bebenita, Michael
    Chang, Mason
    Franz, Michael
    [J]. ACM SIGPLAN NOTICES, 2009, 44 (06) : 465 - 478