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.
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 12.R. G. Burger. Efficient Compilation and Profile-Driven Dynamic Recompilation in Scheme. PhD thesis, Indiana University, 1997.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 15.B. Calder, P. Feller, and A. Eustace. Value profiling. In the 30th International Symposium on Microarchitecture, pages 259-269, Dec. 1997.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 20.T. S. P. E. Corporation. SPEC JVM98 Benchmarks. http://www.spec.org/osg/jvm98, 1998.]]Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 23.D. Detlefs and 0. Agesen. Inlining of virtual methods. In the 13th European Conference on Object-Oriented Programming, 1999.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 26.J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison Wesley, 1996.]] Google ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 30.G. J. Hansen. Adaptive Systems for the Dynamic Run-Time Optimization of Programs. PhD thesis, Carnegie-Mellon University, 1974.]] Google ScholarDigital Library
- 31.U. Holzle. Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming. PhD thesis, Stanford University, Aug. 1994.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 34.The Java Hotspot performance engine architecture. White paper available at http://java.sun.com/products/hotspot/whitepaper.html, Apr. 1999.]]Google Scholar
- 35.T. P. Kistler. Continuous Program Optimization. PhD thesis, University of California, Irvine, 1999.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 44.VolanoMark 2.1. http ://www. volano, com/benchmarks, html.]]Google Scholar
- 45.J. Whaley. Dynamic optimization through the use of automatic runtime specialization. M.eng., Massachussetts Institute of Technology, May 1999.]]Google Scholar
- 46.J. Whaley. A portable sampling-based profiler for Java virtual machines. In ACM 2000 Java Grande ConFerence, June 2000.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Adaptive optimization in the Jalapeño JVM
Recommendations
Adaptive optimization in the Jalapeno JVM
Future high-performance virtual machines will improve performance through sophisticated online feedback-directed optimizations. This paper presents the architecture of the Jalapeno Adaptive Optimization System, a system to support leading-edge virtual ...
Adaptive optimization in the Jalapeño JVM
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 ...
Implementing jalapeño in Java
Jalapeño is a virtual machine for Java™ servers written in Java.
A running Java program involves four layers of functionality: the user code, the virtual-machine, the operating system, and the hardware. By drawing the Java / non-Java boundary below the ...
Comments