skip to main content
10.1145/2414740.2414742acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
invited-talk

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

Published:21 October 2012Publication History

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.

References

  1. D. Ancona, M. Ancona, A. Cuni, and N. D. Matsakis. RPython: a step towards reconciling dynamically and statically typed OO languages. In DLS, Montreal, Quebec, Canada, 2007. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

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

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader