skip to main content
10.1145/353171.353175acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article
Free Access

Adaptive optimization in the Jalapeño JVM

Published:01 October 2000Publication History

ABSTRACT

Future high-performance virtual machines will improve performance through sophisticated online feedback-directed optimizations. this paper presents the architecture of the Jalapeño Adaptive Optimization System, a system to support leading-edge virtual machine technology and enable ongoing research on online feedback-directed optimizations. We describe the extensible system architecture, based on a federation of threads with asynchronous communication. We present an implementation of the general architecture that supports adaptive multi-level optimization based purely on statistical sampling. We empirically demonstrate that this profiling technique has low overhead and can improve startup and steady-state performance, even without the presence of online feedback-directed optimizations. The paper also describes and evaluates an online feedback-directed inlining optimization based on statistical edge sampling. The system is written completely in Java, applying the described techniques not only to application code and standard libraries, but also to the virtual machine itself.

References

  1. 1.A.-R. Adl-Tabatabai, M. Ciemiak, C.-Y. Lueh, V. M. Parikh, and J. M. Stichnoth. Fast, effective code generation in a Just-in-Time Java compiler. In Proceedings of the ACM SIGPLAN'98 Conference on Programming Language Design and Implementation (PLDI), pages 280-290, Montreal, Canada, 17-19 June 1998. SIGPLAN Notices 33(5), May 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.B. Alpem, C. R. Attanasio, J. J. Barton, M. G. Burke, 13. Cheng, J.-D. Choi, A. Cocchi, S. J. Fink, D. Grove, M. Hind, S. F. Hummel, D. Lieber, V. Litvinov, M. F. Mergen, T. Ngo, J. R. Russell, V. Sarkar, M. J. Serrano, J. C. Shepherd, S. E. Smith, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapefio virtual machine. IBM Systems Journal, 39(1), 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.B. Alpem, D. Attanasio, J. J. Barton, A. Cocchi, D. Lieber, S. Smith, and T. Ngo. Implementing Jalapeno in Java. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 314-324, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.J. M. Andersen, L. M. Berc, J. Dean, S. Ghemawat, M. R. Henzinger, S.-T. A. Leung, R. L. Sites, M. T. Vandevoorde, C. A. Waldspurger, and W. E. Weihl. Continuous profiling: Where have all the cycles gone? Technical Note 1997-016a, Digital Systems Research Center, www.research.digital.com/SRC, Sept. 1997.]]Google ScholarGoogle Scholar
  5. 5.M. Arnold, S. Fink, V. Sarkar, and P. Sweeney. A comparative study of static and dynamic heuristics for inlining. In ACM SIGPLAN Workshop on Dynamic and Adaptive Compilation and Optimization, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.M. Arnold, M. Hind, and B. G. Ryder. An empirical study of selective optimization. In 13th International Workshop on Languages and Compilers for Parallel Computing, Aug. 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.M. Arnold and P. F. Sweeney. Approximating the calling context tree via sampling. Technical Report RC 21789, IBM T.J. Watson Research Center, July 2000.]]Google ScholarGoogle Scholar
  8. 8.J. Auslander, M. Philipose, C. Chambers, S. J. Eggers, and B. N. Bershad. Fast, effective dynamic compilation. In Proceedings of the ACM SIGPLAN '96 Conference on Programming Language Design and Implementation, pages 149-159, Philadelphia, Permsylvania, 21-24 May 1996. SIGPLAN Notices 31(5), May 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: A transparent dynamic optimization system. In SIGPLAN 2000 Conference on Programming Language Design and Implementation, June 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.T. Ball and J. R. Laruas. Branch prediction for free. In Proceedings of the ACM SIGPLAN'93 Conference on Programming Language Design and Implementation (PLDI), pages 300-313, Albuquerque, New Mexico, 23-25 June 1993. SIGPLAN Notices 28(6), June 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.R. Bodik, R. Gupta, and V. Sarkar. ABCD: Eliminating Array Bounds Checks on Demand. In SIGPLAN 2000 Conference on Programming Language Design and Implementation, June 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.R. G. Burger. Efficient Compilation and Profile-Driven Dynamic Recompilation in Scheme. PhD thesis, Indiana University, 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.R. G. Burger and R. K. Dybvig. An infrastructure for profile-driven dynamic recompilation. In ICCL '98, the IEEE Computer Society International Conference on Computer Languages, May 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.M. G. Burke, J.-D. Choi, S. Fink, D. Grove, M. Hind, V. Sarkar, M. J. Serrano, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeno dynamic optimizing compiler for Java. In ACM I999 Java Grande Conference, pages 129-141, June 1999.]] Google ScholarGoogle Scholar
  15. 15.B. Calder, P. Feller, and A. Eustace. Value profiling. In the 30th International Symposium on Microarchitecture, pages 259-269, Dec. 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.C. Chambers and D. Ungar. Maldng pure object-oriented languages practical. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 1-15, Nov. 1991. SIGPLAN Notices 26(11).]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17.P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. mei W. Hwu. Profile-gnided automatic inline expansion for C programs. Software - Practice and Experience, 22(5):349-369, May 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.M. Cierniak, G.-Y. Lueh, and J. M. Stichnoth. Practicing JUDO: Java Under Dynamic Optimizations. In SIGPLAN 2000 Conference on Programming Language Design and Implementation, June 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.C. Consel and F. Noel. A general approach for run-time specialization and its application to C. In Conference Record of the 23rd ACM SIGPLAN-SIGA CT Symposium on Principles of Programming Languages, pages 145-156, Jan. 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20.T. S. P. E. Corporation. SPEC JVM98 Benchmarks. http://www.spec.org/osg/jvm98, 1998.]]Google ScholarGoogle Scholar
  21. 21.R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. An efficient method for computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems, 13(4):451-490, 1991.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.J. Dean and C. Chambers. Towards better inlining decisions using inlining trials. In Proceedings of the ACM Conference on LISP and Functional Programming '94, pages 273-282, Orlando, FL, June 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.D. Detlefs and 0. Agesen. Inlining of virtual methods. In the 13th European Conference on Object-Oriented Programming, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24.L. P. Deutsch and A. M. Schiffman. Efficient implementation of the Smalltalk-80 system. In 11th Annual ACM Symposium on the Principles of Programming Languages, pages 297-302, Jan. 1984.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25.S. Fink, K. Knobe, and V. Sarkar. Unified Analysis of Array and Object References in Strongly Typed Languages. In Seventh International Static Analysis Symposium (2000), June 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26.J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison Wesley, 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 27.B. Grant, M. Mock, M. Philipose, C. Chambers, and S. Eggers. DyC: An expressive armotation-directed dynamic compiler for C. Technical Report TR-97-03-03, University of Washington, Department of Computer Science and Engineering, Mar. 1997.]]Google ScholarGoogle Scholar
  28. 28.B. Grant, M. Philipose, M. Mock, C. Chambers, and S. J. Eggers. An evaluation of staged run-time optimizations in DyC. In Proceedings of the A CM SIGPLAN '99 Conference on Programming Language Design and Implementation, pages 293-304, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29.D. Grove, J. Dean, C. Garrett, and C. Chambers. Profile-gnided receiver class prediction. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 108-123, Oct. 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 30.G. J. Hansen. Adaptive Systems for the Dynamic Run-Time Optimization of Programs. PhD thesis, Carnegie-Mellon University, 1974.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 31.U. Holzle. Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming. PhD thesis, Stanford University, Aug. 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 32.U. Holzle and D. Ungar. Reconciling responsiveness with performance in pure object-oriented languages. ACM Transactions on Programming Languages and Systems, 18(4):355-400, July 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 33.R. J. Hookway and M. A. Herdeg. Digital FX!32: Combining emulation and binary transslation. Digital Technical Journal, 9(1):3-12, Jan. 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. 34.The Java Hotspot performance engine architecture. White paper available at http://java.sun.com/products/hotspot/whitepaper.html, Apr. 1999.]]Google ScholarGoogle Scholar
  35. 35.T. P. Kistler. Continuous Program Optimization. PhD thesis, University of California, Irvine, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. 36.A. Krall. Efficient JavaVM Just-in-Time compilation. In J.-L. Gaudiot, editor, International Conference on Parallel Architectures and Compilation Techniques, pages 205-212, Oct. 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. 37.M. Leone and P. Lee. Dynamic specialization in the Fabius system. A CM Computing Surveys, 30(3es):1-5, Sept. 1998. Article 23.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. 38.R. Marlet, C. Consel, and P. Boinot. Efficient incremental run-time specialization for free. In Proceedings of the ACM SIGPLAN '99 Conference on Programming Language Design and Implementation, pages 281-292, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. 39.M. Poletto, D. R. Engler, and M. F. Kaashoek. tcc: A system for fast, flexible, and high-level dynamic code generation. In Proceedings of the A CM SIGPLAN'97 Con}erence on Programming Language Design and Implementation (PLDI), pages 109-121, Las Vegas, Nevada, 15-18 June 1997. SIGPLAN Notices 32(5), May 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. 40.M. Poletto and V. Sarkar. Linear scan register allocation. A C2d Transactions on Programming Languages and Systems, 21(5):895-913, Sept. 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. 41.R. Radhakrishnan, N. Vijaykrishnan, L. K. John, and A. Sivasubramaniam. Architectural issues in Java runtime systems. In Proceedings o} the Sixth International Symposium on High PerFormance Computer Architecture (HPCA-6), pages 387-398, Toulouse, France, Jan. 2000.]]Google ScholarGoogle Scholar
  42. 42.M. Serrano, R. Bordawekar, S. Midldff, and M. Gupta. Quasi-static compilation in Java. In A CM Conference on Object-Oriented Programming Systems, Languages, and Applications, Oct. 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. 43.T. Suganama, T. Ogasawara, M. Takeuchi, T. Yasue, M. Kawahito, K. Ishizald, H. Komatsu, and T. Nakatani. Overview of the IBM Java Just-in-Time compiler. IBM Systems Journal, 39(1), 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. 44.VolanoMark 2.1. http ://www. volano, com/benchmarks, html.]]Google ScholarGoogle Scholar
  45. 45.J. Whaley. Dynamic optimization through the use of automatic runtime specialization. M.eng., Massachussetts Institute of Technology, May 1999.]]Google ScholarGoogle Scholar
  46. 46.J. Whaley. A portable sampling-based profiler for Java virtual machines. In ACM 2000 Java Grande ConFerence, June 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. 47.B.-S. Yang, S.-M. Moon, S. Park, J. Lee, S. Lee, J. Park, Y. C. Chung, S. Kim, K. Ebcioglu, and E. Altman. LaTTe: A Java VM Just-in-Time compiler with fast and efficient register allocation. In International Con}erence on Parallel Architectures and Compilation Techniques, Oct. 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. 48.X. Zhang, Z. Wang, N. Gloy, J. B. Chen, and M. D. Smith. System support for automated profiling and optimization. In Proceedings of the 16th Symposium on Operating Systems Principles (SOSP-97), Operating Systems Review, 31(5), pages 15-26, Oct. 5-8 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Adaptive optimization in the Jalapeño JVM

          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
          • Published in

            cover image ACM Conferences
            OOPSLA '00: Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
            October 2000
            402 pages
            ISBN:158113200X
            DOI:10.1145/353171

            Copyright © 2000 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 1 October 2000

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • Article

            Acceptance Rates

            Overall Acceptance Rate268of1,244submissions,22%

            Upcoming Conference

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader