skip to main content
research-article

Reducing trace selection footprint for large-scale Java applications without performance loss

Published:22 October 2011Publication History
Skip Abstract Section

Abstract

When optimizing large-scale applications, striking the balance between steady-state performance, start-up time, and code size has always been a grand challenge. While recent advances in trace compilation have significantly improved the steady-state performance of trace JITs for large-scale Java applications, the size control aspect of a trace compilation system remains largely overlooked. For instance, using the DaCapo 9.12 benchmarks, we observe that 40% of traces selected by a state-of-the-art trace selection algorithm are short-lived and, on average, each selected basic block is replicated 13 times in the trace cache.

This paper studies the size control problem for a class of commonly used trace selection algorithms and proposes six techniques to reduce the footprint of trace selection without incurring any performance loss. The crux of our approach is to target redundancies in trace selection in the form of either short-lived traces or unnecessary trace duplication.

Using one of the best performing selection algorithms as the baseline, we demonstrate that, on the DaCapo 9.12 benchmarks and DayTrader 2.0 on WebSphere Application Server 7.0, our techniques reduce the code size and compilation time by 69% and the start-up time by 43% while retaining the steady-state performance. On DayTrader 2.0, an example of large-scale application, our techniques also improve the steady-state performance by 10%.

References

  1. Bala, V., Duesterwald, E., and Banerjia, S. Dynamo: A Transparent Runtime Optimization System. In Proceedings of Conference on Programming Language Design and Implementation (PLDI) (June 2000). Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Bebenita, M., Brandner, F., Fahndrich, M., Logozzo, F., Schulte, W., Tillmann, N., and Venter, H. SPUR: a trace-based JIT compiler for CIL. In Proceedings of International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA) (2010). pp. 708--725. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Blackburn, Garner, Hoffmann, Khang, McKinley, Bentzur, Diwan, Feinberg, Frampton, Guyer, and Hosking. The DaCapo benchmarks: java benchmarking development and analysis. In Proceedings of Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA) (Oct. 2006). Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bolz, C., Cuni, A., Fijalkowski, M., Leuschel, M., Pedroni, S., and Rigo, A. Allocation removal by partial evaluation in a tracing JIT. In Proceedings of Workshop on Partial Evaluation and Program Manipulation (2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bolz, C., Cuni, A., Fijalkowski, M., and Rigo, A. Tracing the Meta-Level: PyPy's Tracing JIT Compiler. In Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems (2009). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Bruening, D., and Amarasinghe, S. Maintaining Consistency and Bounding Capacity of Software Code Caches. In Proceedings of International Symposium on Code Generation and Optimization (CGO) (Mar. 2005). Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Bruening, D., Garnett, T., and Amarasinghe, S. An Infrastructure for Adaptive Dynamic Compilation. In Proceedings of International Symposium on Code Generation and Optimization (CGO) (Mar. 2003). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Gal, A., Eich, B., Shaver, M., Anderson, D., Mandelin, D., Haghighat, M. R., Kaplan, B., Hoare, G., Zbarsky, B., Orendorff, J., Ruderman, J., Smith, E. W., Reitmaier, R., Bebenita, M., Chang, M., and Franz, M. Trace-based just-in-time type specialization for dynamic languages. In Proceedings of Conference on Programming Language Design and Implementation (PLDI) (2009), pp. 465--478. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Gal, A., and Franz, M. Incremental dynamic code generation with trace trees. Tech. rep., University of California Irvine, November 2006.Google ScholarGoogle Scholar
  10. Gal, A., Probst, C., and Franz, M. HotPathVM: An Effective JIT Compiler for Resource-constrained Devices. In Proceedings of International Conference on Virtual Execution Environments (VEE) (June 2006). Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Grcevski, N., Kielstra, A., Stoodley, K., Stoodley, M., and Sundaresan, V. Java just-in-time compiler and virtual machine improvements for server and middleware applications. In Proceedings of International Conference on Virtual Execution Environments (VEE) (June 2004). Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Guo, S., and Palsberg, J. The essence of compiling with traces. In Proceedings of International Symposium on Principles on Programming Languages (POPL) (2011), pp. 563--574. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Hayashizaki, H., Wu, P., Inoue, H., Serrano, M. J., and Nakatani, T. Improving the performance of trace-based systems by false look filtering. In Proceedings of International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS) (March 2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Hiniker, D., Hazelwood, K., and Smith, M. D. Improving region selection in dynamic optimization systems. In Proceedings of 38th International Symposium on Microarchitecture (MICRO) (Dec. 2005). Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. IBM Corporation. WebSphere Application Server. http://www-01.ibm.com/software/webservers/appserv/was/.Google ScholarGoogle Scholar
  16. Inoue, H., Hayashizaki, H., Wu, P., and Nakatani, T. A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler. In Proceedings of International Symposium on Code Generation and Optimization (CGO) (April 2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. LuaJIT design notes in lua-l mailing list. http://lua-users.org/lists/lua-l/2008-02/msg00051.html.Google ScholarGoogle Scholar
  18. Merrill, D., and Hazelwood, K. Trace fragment selection within method-based jvms. In Proceedings of International Conference on Virtual Execution Environments (VEE) (June 2008). Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. The Apache Software Foundation. DayTrader. http://cwiki.apache.org/GMOxDOC20/daytrader.html.Google ScholarGoogle Scholar
  20. Whaley, J. Partial Method Compilation using Dynamic Profile Information. In Proceeding of Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA) (Oct. 2001), pp. 166--179. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Zaleski, M., Demke-Brown, A., and Stoodley, K. YETI: a graduallY Extensible Trace Interpreter. In Proceedings of International Conference on Virtual Execution Environments (VEE) (2007), pp. 83--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Zhao, C., Wu, Y., Steffan, J., and Amza, C. Lengthening Traces to Improve Opportunities for Dynamic optimization. In 12th Workshop on Interaction between Compilers and Computer Architectures (Feb 2008).Google ScholarGoogle Scholar

Index Terms

  1. Reducing trace selection footprint for large-scale Java applications without performance loss

    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

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 46, Issue 10
      OOPSLA '11
      October 2011
      1063 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2076021
      Issue’s Table of Contents
      • cover image ACM Conferences
        OOPSLA '11: Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
        October 2011
        1104 pages
        ISBN:9781450309400
        DOI:10.1145/2048066

      Copyright © 2011 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 22 October 2011

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!