skip to main content
research-article

JIT compilation policy for modern machines

Published:22 October 2011Publication History
Skip Abstract Section

Abstract

Dynamic or Just-in-Time (JIT) compilation is crucial to achieve acceptable performance for applications (written in managed languages, such as Java and C#) distributed as intermediate language binary codes for a virtual machine (VM) architecture. Since it occurs at runtime, JIT compilation needs to carefully tune its compilation policy to make effective decisions regarding 'if' and 'when' to compile different program regions to achieve the best overall program performance. Past research has extensively tuned JIT compilation policies, but mainly for VMs with a single compiler thread and for execution on single-processor machines.

This work is driven by the need to explore the most effective JIT compilation strategies in their modern operational environment, where (a) processors have evolved from single to multi/many cores, and (b) VMs provide support for multiple concurrent compiler threads. Our results confirm that changing 'if' and 'when' methods are compiled have significant performance impacts. We construct several novel configurations in the HotSpot JVM to facilitate this study. The new configurations are necessitated by modern Java benchmarks that impede traditional static whole-program discovery, analysis and annotation, and are required for simulating future many-core hardware that is not yet widely available. We study the effects on performance of increasing compiler aggressiveness for VMs with multiple compiler threads running on existing single/multi-core and future many-core machines. Our results indicate that although more aggressive JIT compilation policies show no benefits on single-core machines, these can often improve program performance for multi/many-core machines. However, accurately prioritizing JIT method compilations is crucial to realize such benefits.

References

  1. International technology roadmap for semiconductors. accessed from http://www.itrs.net/Links/2009ITRS/Home2009.htm, 2008-09.Google ScholarGoogle Scholar
  2. Arnold, Fink, Grove, Hind, and Sweeney}jikes00M. Arnold, S. Fink, D. Grove, M. Hind, and P. F. Sweeney. Adaptive optimization in the jalapeno jvm. In Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 47--65, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Arnold, Fink, Grove, Hind, and Sweeney}jikes00controllerM. Arnold, S. Fink, D. Grove, M. Hind, and P. F. Sweeney. Adaptive optimization in the Jalapeño JVM: The controller's analytical model. In Proceedings of the 3rd ACM Workshop on Feedback Directed and Dynamic Optimization (FDDO '00), December 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Arnold, S. Fink, D. Grove, M. Hind, and P. F. Sweeney. A survey of adaptive optimization in virtual machines. Proceedings of the IEEE, 92 (2): 449--466, February 2005.Google ScholarGoogle ScholarCross RefCross Ref
  5. S. M. Blackburn, R. Garner, C. Hoffmann, A. M. Khang, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, B. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, OOPSLA '06, pages 169--190, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. E. Bodden, A. Sewe, J. Sinschek, H. Oueslati, and M. Mezini. Taming reflection: Aiding static analysis in the presence of reflection and custom class loaders. In ICSE '11: International Conference on Software Engineering, May 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Böhm, Edler von Koch, Kyle, Franke, and Topham}Bohm11pldiI. Böhm, T. J. Edler von Koch, S. C. Kyle, B. Franke, and N. Topham. Generalized just-in-time trace compilation using a parallel task farm in a dynamic binary translator. In Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation, PLDI '11, pages 74--85, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. Bruening and E. Duesterwald. Exploring optimal compilation unit shapes for an embedded just-in-time compiler. In 3rd ACM Workshop on Feedback-Directed and Dynamic Optimization, pages 13--20, 2000.Google ScholarGoogle Scholar
  9. P. P. Chang, S. A. Mahlke, and W. mei W. Hwu. Using profile information to assist classic code optimizations. Software Practice and Experience, 21: 1301--1321, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. L. P. Deutsch and A. M. Schiffman. Efficient implementation of the smalltalk-80 system. In POPL '84: Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pages 297--302, New York, NY, USA, 1984. ACM. ISBN 0--89791--125--3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. X. Goemans. Advanced algorithms. Technical Report MIT/LCS/RSS-27, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Gosling, B. Joy, G. Steele, and G. Bracha. The Java(TM) Language Specification (3rd Edition). Prentice Hall, third edition, June 14 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. L. Graham, P. B. Kessler, and M. K. Mckusick. Gprof: A call graph execution profiler. SIGPLAN Notices, 17 (6): 120--126, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. N. Grcevski, A. Kielstra, K. Stoodley, M. Stoodley, and V. Sundaresan. Java just-in-time compiler and virtual machine improvements for server and middleware applications. In Proceedings of the conference on Virtual Machine Research And Technology Symposium, pages 12--12, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. D. Gu and C. Verbrugge. Phase-based adaptive recompilation in a jvm. In Proceedings of the 6th IEEE/ACM symposium on Code generation and optimization, CGO '08, pages 24--34, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. Haneda, P. M. W. Knijnenburg, and H. A. G. Wijshoff. Generating new general compiler optimization settings. In ICS '05: Proceedings of the 19th Annual International Conference on Supercomputing, pages 161--168, 2005. ISBN 1--59593--167--8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. G. J. Hansen. Adaptive systems for the dynamic run-time optimization of programs. PhD thesis, Carnegie-Mellon Univ., Pittsburgh, PA, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. T. Harris. Controlling run-time compilation. In IEEE Workshop on Programming Languages for Real-Time Industrial Applications, pages 75--84, Dec. 1998.Google ScholarGoogle Scholar
  19. U. Hölzle and D. Ungar. Reconciling responsiveness with performance in pure object-oriented languages. ACM Transactions on Programming Language Systems, 18 (4): 355--400, 1996. ISSN 0164-0925. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. R. M. Karp. On-line algorithms versus off-line algorithms: How much is it worth to know the future? In Proceedings of the IFIP World Computer Congress on Algorithms, Software, Architecture - Information Processing, Vol 1, pages 416--429, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. D. E. Knuth. An empirical study of fortran programs. Software: Practice and Experience, 1 (2): 105--133, 1971.Google ScholarGoogle ScholarCross RefCross Ref
  22. T. Kotzmann, C. Wimmer, H. Mössenböck, T. Rodriguez, K. Russell, and D. Cox. Design of the Java hotspot#8482; client compiler for Java 6. ACM Trans. Archit. Code Optim., 5 (1): 1--32, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. C. Krintz. Coupling on-line and off-line profile information to improve program performance. In CGO '03: Proceedings of the international symposium on Code generation and optimization, pages 69--78, Washington, DC, USA, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. C. Krintz and B. Calder. Using annotations to reduce dynamic optimization time. In Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation, pages 156--167, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. C. Krintz, D. Grove, V. Sarkar, and B. Calder. Reducing the overhead of dynamic compilation. Software: Practice and Experience, 31 (8): 717--738, December 2000.Google ScholarGoogle ScholarCross RefCross Ref
  26. P. Kulkarni, M. Arnold, and M. Hind. Dynamic compilation: the benefits of early investing. In VEE '07: Proceedings of the 3rd international conference on Virtual execution environments, pages 94--104, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. P. A. Kulkarni and J. Fuller. JIT compilation policy on single-core and multi-core machines. In the 15th Workshop on Interaction between Compilers and Computer Architectures (INTERACT), pages 54--62, February 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Microsoft. Microsoft C# Language Specifications. Microsoft Press, first edition, April 25 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. M. A. Namjoshi and P. A. Kulkarni. Novel online profiling for virtual machines. In VEE '10: Proceedings of the 6th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, pages 133--144, 2010. ISBN 978--1--60558--910--7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. M. Paleczny, C. Vick, and C. Click. The Java hotspottm server compiler. In JVM'01: Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium, pages 1--12, Berkeley, CA, USA, 2001. USENIX Association. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. SPEC2008. Specjvm2008 benchmarks. http://www.spec.org/jvm2008/, 2008.Google ScholarGoogle Scholar
  32. SPEC98. Specjvm98 benchmarks. http://www.spec.org/jvm98/, 1998.Google ScholarGoogle Scholar
  33. V. Sundaresan, D. Maier, P. Ramarao, and M. Stoodley. Experiences with multi-threading and dynamic class loading in a Java just-in-time compiler. In Proceedings of the International Symposium on Code Generation and Optimization, CGO '06, pages 87--97, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. R. Vallée-Rai, P. Co, E. Gagnon, L. Hendren, P. Lam, and V. Sundaresan. Soot - a Java bytecode optimization framework. In CASCON '99: Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research, page 13, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. D. L. Whitfield and M. L. Soffa. An approach for exploring code improving transformations. ACM Transactions on Programming Languages and Systems, 19 (6): 1053--1084, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. JIT compilation policy for modern machines

    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!