Nothing Special   »   [go: up one dir, main page]

skip to main content
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
  • (2008)Program transformations for light-weight CPU accounting and control in the Java virtual machineHigher-Order and Symbolic Computation10.1007/s10990-008-9026-421:1-2(119-146)Online publication date: 1-Jun-2008
  • (2008)Platform‐independent profiling in a virtual execution environmentSoftware: Practice and Experience10.1002/spe.89039:1(47-79)Online publication date: 11-Sep-2008
  • (2007)Fast online pointer analysisACM Transactions on Programming Languages and Systems10.1145/1216374.121637929:2(11-es)Online publication date: 1-Apr-2007
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 35, Issue 5
May 2000
357 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/358438
Issue’s Table of Contents
  • 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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 May 2000
Published in SIGPLAN Volume 35, Issue 5

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)107
  • Downloads (Last 6 weeks)17
Reflects downloads up to 04 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2008)Program transformations for light-weight CPU accounting and control in the Java virtual machineHigher-Order and Symbolic Computation10.1007/s10990-008-9026-421:1-2(119-146)Online publication date: 1-Jun-2008
  • (2008)Platform‐independent profiling in a virtual execution environmentSoftware: Practice and Experience10.1002/spe.89039:1(47-79)Online publication date: 11-Sep-2008
  • (2007)Fast online pointer analysisACM Transactions on Programming Languages and Systems10.1145/1216374.121637929:2(11-es)Online publication date: 1-Apr-2007
  • (2007)Application-specific garbage collectionJournal of Systems and Software10.1016/j.jss.2006.12.56680:7(1037-1056)Online publication date: 1-Jul-2007
  • (2006)Exact and Portable Profiling for the JVM Using Bytecode Instruction CountingElectronic Notes in Theoretical Computer Science10.1016/j.entcs.2006.07.011164:3(45-64)Online publication date: Oct-2006
  • (2006)Portable and accurate sampling profiling for JavaSoftware: Practice and Experience10.1002/spe.71236:6(615-650)Online publication date: 2006
  • (2005)Improving virtual machine performance using a cross-run profile repositoryACM SIGPLAN Notices10.1145/1103845.109483540:10(297-311)Online publication date: 12-Oct-2005
  • (2005)Improving virtual machine performance using a cross-run profile repositoryProceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications10.1145/1094811.1094835(297-311)Online publication date: 17-Oct-2005
  • (2005)Enabling control over adaptive program transformation for dynamically evolving mobile software validationProceedings of the 2005 workshop on Software engineering for secure systems—building trustworthy applications10.1145/1083200.1083210(1-7)Online publication date: 15-May-2005
  • (2005)Enabling control over adaptive program transformation for dynamically evolving mobile software validationACM SIGSOFT Software Engineering Notes10.1145/1082983.108321030:4(1-7)Online publication date: 15-May-2005
  • 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