Abstract
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 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.
- A.-R. Adl-Tabatabai, M. Cierniak, 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 Scholar
Digital Library
- B. Alpern, C. R. Attanasio, J. J. Barton, M. G. Burke, P. 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 Jalapeno virtual machine. IBM Sy8tems Journal, 39(1), 2000. Google Scholar
Digital Library
- B. Alpern, 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 Scholar
Digital Library
- 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
- 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 Scholar
Digital Library
- M. Arnold, M. Hind, and B. G. Ryder. An empirical study of selective optimization. In 18th International Workshop on Languages and Compilers for Parallel Computing, Aug. 2000. Google Scholar
Digital Library
- 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
- 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, Pennsylvania, 21-24 May 1996. SIGPLAN Notices 31(5), May 1996. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- T . Ball and J . R. Lams. Branch prediction for free. In Proceedings of the ACM SIGPLAN'98 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 Scholar
Digital Library
- R. Bodik, R. Gupta, and V. Sarkar. ABCD: Eliminating Array Bounds Checks on Demand. In SIGPLAN fWOO Conference on Programming Language Design and Implementation, June 2000. Google Scholar
Digital Library
- R. G. Burger. Efficient Compilation and Profile-Driven Dynamic Recompilation in Scheme. PhD thesis, Indiana University, 1997. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 1999 Java Grande Conference, pages 129--141, June 1999. Google Scholar
Digital Library
- B. Calder, P. Feller, and A. Eustace. Value profiling. In the 30th International Symposium on Microarchitecture, pages 259--269, Dec. 1997. Google Scholar
Digital Library
- C. Chambers and D. Ungar. Making 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 Scholar
Digital Library
- P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. mei 1995. W. Hwu. Profile-guided automatic inline expansion for C programs. Software - Practice and Experience, 22(5):349--369, May 1992. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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-SIGACT Symposium on Principles of Programming Languages, pages 145--156, Jan. 1996. Google Scholar
Digital Library
- T. S. P. E. Corporation. SPEC JVM98 Benchmarks. http:/ /www.spec.org/osg/jvm98, 1998.Google Scholar
- R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, White paper available at 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- D. Detlefs and O. Agesen. Inlining of virtual methods. Fabius system. ACM Computing Surveys, 30(3es):1-5,Google Scholar
- L. P. Deutsch and A. M. Schiffman. Efficient incremental run-time specialization for free. In implementation of the Smalltalk-80 system. In 11th Annual ACM Symposium on the Principles of Programming Languages, pages 297--302, Jan. 1984. Google Scholar
Digital Library
- S. Fink, K. Knobe, and V. Sarkar. Unified Analysis of Array and Object References in Strongly Typed Languages. In Seventh International Static Analysis Symposium (MOO), June 2000. Google Scholar
Digital Library
- J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison Wesley, 1996. Google Scholar
Digital Library
- B. Grant, M. Mock, M. Philipose, C. Chambers, and S. Eggers. DyC: An expressive annotation-directed dynamic compiler for C. Technical Report TR-97-03-03, University of Washington, Department of Computer Science and Engineering, Mar. 1997.Google Scholar
- 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 ACM SIGPLAN '99 Conference on Programming Language Design and Implementation, pages 293--304, 1999. Google Scholar
Digital Library
- D. Grove, J. Dean, C. Garrett, and C. Chambers. Profile-guided receiver class prediction. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 108--123, Oct. 1995. Google Scholar
Digital Library
- G. J. Hansen. Adaptive Systems for the Dynamic Run- Time Optimization of Programs. PhD thesis, Carnegie-Mellon University, 1974. Google Scholar
Digital Library
- U. Holzle. Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming. PhD thesis, Stanford University, Aug. 1994. Google Scholar
Digital Library
- U. Hölzle 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- The Java Hotspot performance engine architecture. White paper available at http://java.sun.com/products/hotspot/whitepaper.html Apr. 1999.Google Scholar
- T. P. Kistler. Continuous Program Optimization. PhD 1991. thesis, University of California, Irvine, 1999. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- M. Leone and P. Lee. Dynamic specialization in the Fabius system. ACM Computing Surveys, 30(3es):1-5, Sept. 1998. Article 23. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 ACM SIGPLAN'97 Conference on Programming Language Design and Implementation (PLDI), pages 109-121, Las Vegas, Nevada, 15-18 June 1997. SIGPLAN Notices 32(5), May 1997. Google Scholar
Digital Library
- M. Poletto and V. Sarkar. Linear scan register allocation. A CM Transactions on Programming Languages and Systems, 21(5):895--913, Sept. 1999. Google Scholar
Digital Library
- R. Radhakrishnan, N. Vijaykrishnan, L. K. John, and A. Sivasubramaniam. Architectural issues in Java runtime systems. In Proceedings of the Sizth International Symposium on High Performance Computer Architecture (HPCA-6), pages 387--398, Toulouse, France, Jan. 2000.Google Scholar
- M. Serrano, R. Bordawekar, S. Midkiff, and M. Gupta. Quasi-static compilation in Java. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Oct. 2000. Google Scholar
Digital Library
- T. Suganama, T. Ogasawara, M. Takeuchi, T. Yasue, M. Kawahito, K. Ishizaki, H. Komatsu, and T. Nakatani. Overview of the IBM Java Just-in-Time compiler. IBM Systems Journal, 39(1), 2000. Google Scholar
Digital Library
- VolanoMark 2.1. http://www.volano.com/benchmarks.html.Google Scholar
- J. Whaley. Dynamic optimization through the use of automatic runtime specialization. M.eng., Massachussetts Institute of Technology, May 1999.Google Scholar
- J. Whaley. A portable sampling-based profiler for Java virtual machines. In ACM 2000 Java Grande Conference, June 2000. Google Scholar
Digital Library
- 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 Conference on Parallel Architectures and Compilation Techniques, Oct. 1999. Google Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
Adaptive optimization in the Jalapeno JVM
Recommendations
Adaptive optimization in the Jalapeño JVM
OOPSLA '00: Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsFuture 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 ...
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