skip to main content
10.1145/349299.349306acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article
Free access

Practicing JUDO: Java under dynamic optimizations

Published: 01 May 2000 Publication History

Abstract

A high-performance implementation of a Java Virtual Machine (JVM) consists of efficient implementation of Just-In-Time (JIT) compilation, exception handling, synchronization mechanism, and garbage collection (GC). These components are tightly coupled to achieve high performance. In this paper, we present some static anddynamic techniques implemented in the JIT compilation and exception handling of the Microprocessor Research Lab Virtual Machine (MRL VM), i.e., lazy exceptions, lazy GC mapping, dynamic patching, and bounds checking elimination. Our experiments used IA-32 as the hardware platform, but the optimizations can be generalized to other architectures.

References

[1]
A. Adl-Tabatabai, M. Ciemiak, G.-Y. Lueh, V.M. Parikh, and J.M. Sfichnoth. Fast, Effective Code Generation in a Just-In- Time Java Compiler. Conference on Programming Language Design and Implementation, May 1998, pp. 280-290.]]
[2]
A. Adl-Tabatabai and T. Gross. Detection and Recovery of Endangered Variables Caused by Instruction Scheduling. Conference on Programming Language Design and Implementation, May 1993, pp. 13-25.]]
[3]
A. Adl-Tabatabai and T. Gross. Source-Level Debugging of Scalar Optimized Code. Conference on Programming Language Design and Implementation, May 1996, pp. 33-42.]]
[4]
A.V. Aho, R. Sethi, and J. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading, MA, second edition, 1986.]]
[5]
K. Arnold and J. Gosling. The Java Programming Language. Second Edition. Addison-Wesley, 1997.]]
[6]
J. Auslander, M. Philipose, C. Chambers, S. Eggers, and B. Bershad. Fast, effective dynamic compilation. Conference on Programming Language Design and Implementation, May 1996, pp. 149-159.]]
[7]
M. Burke, J-D. Choi, S. Fink, D. Grove, M. Hind, V. Sarkar, M. Serrano, V. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapefio Dynamic Optimizing Compiler for Java. Java Grande Conference, 1999, pp. 129-141.]]
[8]
J. Dean, D. Grove, and C. Chambers. Optimization of Object- Oriented Programs Using Static Class Hierarchy Analysis. ECOOP 1995, pp. 71-101.]]
[9]
D. Detlefs and O. Agesen, Inlining of Virtual Methods. ECOOP 1999, pp. 258-278.]]
[10]
D.R. Engler, W.C. Hsieh, and M.F. Kaashoek. 'C: A language for high-level, efficient, and machine-independent dynamic code generation. Symposium on Principles of Programming Languages, January 1996, pp. 131-144.]]
[11]
B. Grant, M. Philipose, M. Mock, C. Chambers, and S. Eggers, An Evaluation of Staged Run-Time Optimizations in DyC. Conference on Programming Language Design and Implementation, May 1999, pp. 293-304.]]
[12]
J. Gosling, B. Joy and G. Steele. The Java Language Specification. Addison-Wesley, 1996.]]
[13]
U. H61zle, C. Chambers, and D. Ungar. Optimizing Dynamically-Typed Objected-Oriented Languages With Ploymorphic Inline Caches. ECOOP'91 conference proceedings, 1991. Published as Springer Verlag Lecture Notes in Computer Science 512.]]
[14]
U. H61zle and D. Ungar. Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback. Conference on Programming Language Design and Implementation, Orlando, FL, June 1994, pp. 326-335.]]
[15]
U. H61zle, C. Chambers, and D. Ungar. Debugging Optimized Code with Dynamic Deoptimization. Conference on Programming Language Design and Implementation, June 1992, pp. 32-43.]]
[16]
Intel Corp. Intel Architecture Software Developer's Manual, order number 243192. 1997]]
[17]
Intel Corp. Intel IA-64 Architecture Software Developer's Manual, order number 245319. 2000]]
[18]
S. Lee, B.-Y. Yang, K. Ebcioglu and E. Altman. On-Demand Translation of Java Exception Handlers in the LaTTe JVM Just-In-Time Compiler. Workshop on Binary Translation. Newport Beach, CA. October 1999.]]
[19]
T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Second Edition. Addison-Wesley, 1999.]]
[20]
M. Leone and R. K. Dybvig. Dynamo: A Staged Compiler Architecture for Dynamic Program Optimization. Technical Report #490, Indiana University, 1997]]
[21]
M. Plezbert and R. Cytron, Does "Just in Time"= "Better Late Than Never"? Symposium on Principles of Programming Languages, 1997, pp. 120-131.]]
[22]
J.M. Stichnoth, G.-Y. Lueh, and M. Ciemiak. Support for Garbage Collection at Every Instruction in a Java Compiler. Conference on Programming Language Design and Implementation, May 1999, pp. 118-127.]]
[23]
Standard Performance Evaluation Corporation. SPEC JVM98 Benchmarks. Available at http://www.spec.org/osg/jvm98]]
[24]
Sun Microsystems, Inc. Java Virtual Machine Debug -Interface Reference. Available at: http://java, sun.com/- products/j dk/1.3/doc s/guide/jpda/j vmdi- spec.html.]]
[25]
Sun Microsystems, Inc. The Java Hotspot Performance Engine Architecture. Available at http://java, sun.com/- products/hotspot/whitepaper, html.]]

Cited By

View all
  • (2020)Smart selection of optimizations in dynamic compilersConcurrency and Computation: Practice and Experience10.1002/cpe.608933:18Online publication date: 26-Nov-2020
  • (2019)Optimization of swift protocolsProceedings of the ACM on Programming Languages10.1145/33605903:OOPSLA(1-27)Online publication date: 10-Oct-2019
  • (2017)AOT vs. JIT: impact of profile data on code qualityACM SIGPLAN Notices10.1145/3140582.308103752:5(1-10)Online publication date: 21-Jun-2017
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
August 2000
358 pages
ISBN:1581131992
DOI:10.1145/349299
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 May 2000

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

PLDI00

Acceptance Rates

PLDI '00 Paper Acceptance Rate 30 of 173 submissions, 17%;
Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)130
  • Downloads (Last 6 weeks)32
Reflects downloads up to 10 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2020)Smart selection of optimizations in dynamic compilersConcurrency and Computation: Practice and Experience10.1002/cpe.608933:18Online publication date: 26-Nov-2020
  • (2019)Optimization of swift protocolsProceedings of the ACM on Programming Languages10.1145/33605903:OOPSLA(1-27)Online publication date: 10-Oct-2019
  • (2017)AOT vs. JIT: impact of profile data on code qualityACM SIGPLAN Notices10.1145/3140582.308103752:5(1-10)Online publication date: 21-Jun-2017
  • (2017)AOT vs. JIT: impact of profile data on code qualityProceedings of the 18th ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems10.1145/3078633.3081037(1-10)Online publication date: 21-Jun-2017
  • (2015)Towards Context-Aware DNA Sequence Compression for Efficient Data ExchangeProceedings of the 2015 IEEE International Parallel and Distributed Processing Symposium Workshop10.1109/IPDPSW.2015.89(357-366)Online publication date: 25-May-2015
  • (2013)A modular approach to on-stack replacement in LLVMACM SIGPLAN Notices10.1145/2517326.245154148:7(143-154)Online publication date: 16-Mar-2013
  • (2013)A modular approach to on-stack replacement in LLVMProceedings of the 9th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments10.1145/2451512.2451541(143-154)Online publication date: 16-Mar-2013
  • (2011)Next in line, please!Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE! 2011, AOOPES'11, NEAT'11, & VMIL'1110.1145/2095050.2095102(317-328)Online publication date: 23-Oct-2011
  • (2011)Adaptive optimization in the Jalapeno JVMACM SIGPLAN Notices10.1145/1988042.198804846:4(65-83)Online publication date: 20-May-2011
  • (2010)A framework for optimizing Java using attributesCASCON First Decade High Impact Papers10.1145/1925805.1925819(225-241)Online publication date: 1-Nov-2010
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media