A trace-based Java JIT compiler for large-scale applications

  • Authors:
  • Hiroshi Inoue

  • Affiliations:
  • IBM Research -- Tokyo

  • Venue:
  • Proceedings of the sixth ACM workshop on Virtual machines and intermediate languages
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Trace-based compilation uses dynamically-identified frequently-executed code sequences (traces) as units for compilation. We explore trace-based compilation in Java to see if a trace-based JIT compiler (trace-JIT) can address a limitation of method-based JIT compilers: limited compilation scope when dealing with those with largely flat execution profile. Although, trace-based compilation has gained popularity in dynamic scripting languages (e.g. TraceMonkey and pypy) or for embedded devices (e.g. Dalvik VM), the benefits and drawbacks of trace-JIT for large-scale applications have not yet been studied. We first describe the design and implementation of our trace-JIT with emphasis on efficient trace selection and code generation. Then we discuss how the trace selection algorithm affects the performance of a large-scale Java application server.