Skip to main content
Log in

A Tree-Based Alternative to Java Byte-Codes

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Despite the apparent success of the Java Virtual Machine, its lackluster performance makes it ill-suited for many speed-critical applications. Although the latest just-in-time compilers and dedicated Java processors try to remedy this situation, optimized code compiled directly from a C program source is still considerably faster than software transported via Java byte-codes. This is true even if the Java byte-codes are subsequently further translated into native code. In this paper, we claim that these performance penalties are not a necessary consequence of machine-independence, but related to Java's particular intermediate representation and runtime architecture. We have constructed a prototype and are further developing a software transportability scheme founded on a tree-based alternative to Java byte-codes. This tree-based intermediate representation is not only twice as compact as Java byte-codes, but also contains more high-level information, some of which is critical for advanced code optimizations. Our architecture not only provides on-the-fly code generation from this intermediate representation, but also continuous re-optimization of the existing code-base by a low-priority background process. The re-optimization process is guided by up-to-the-minute profiling data, leading to superior runtime performance.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

REFERENCES

  1. T. Lindholm, F. Yellin, B. Joy, and K. Walrath, The Java Virtual Machine Specification, Addison-Wesley (1996).

  2. Sun Microsystems, The Java Language: An Overview, http://java.sun.com/doc/Overviews/java/java-overview-1.html (1995).

  3. D. W. Wall, Global Register Allocation at Link Time, Proc. '86 Symp. Compiler Construction, pp. 264–275 (July 1986).

  4. M. Franz and T. Kistler, Slim Binaries, Comm. ACM, 40(12):87–94 (December 1997). Also published as Technical Report No. 96–24, Department of Information and Computer Science, University of California, Irvine (June 1996).

    Google Scholar 

  5. M. Franz, Code-Generation On-the-Fly: A Key to Portable Software, Doctoral Dissertation, Verlag der Fachvereine, Zürich (1994).

    Google Scholar 

  6. T. A. Welch, A Technique for High-Performance Data Compression, IEEE Computer,17(6):8–19 (June 1984).

    Google Scholar 

  7. M. Wolf and M. Lam, A Data Locality Optimization Algorithm, Proc.191 Conf. Progr. Lang. Design and Implementation. Published as SIGPLAN Notices 26(6):30–44 (June 1991).

    Google Scholar 

  8. J. Cocke and J. Schwartz, Programming Languages and Their Compilers: Preliminary Notes, Courant Institute of Mathematical Sciences, New York University (April 1970).

  9. M. M. Brandis, Optimizing Compilers for Structured Programming Languages, Doctoral Dissertation, Eidgenö ssische Technische Hochschule Zürich (1995).

    Google Scholar 

  10. U. Hölzle, Adaptive Optimization for SELF: Reconciling High Performance with Exploratory Programming, Ph.D. Dissertation, Department of Computer Science, Stanford University (1994).

  11. T. Kistler, Dynamic Runtime Optimization, Proc. Joint Modular Lang. Conf. (JMLC'97), pp. 53–66. Published as Springer Lecture Notes in Computer Science No. 1204 (March 1997). Also published as Technical Report No. 9–54, Department of Information and Computer Science, University of California, Irvine (November 1996).

  12. J. Anderson, L. Berc, J. Dean, S. Ghemawat, M. Henzinger, S.-T. Leung, R. Sites, M. Vandevoorde, C. Waldspurger, and W. Weihl, Continuous Profiling: Where Have All the Cycles Gone? Proc. 16th ACM Symp. Oper. Syst. Principles, St. Malo, France (October 1997). Also published as Technical Note 199– 016.

    Google Scholar 

  13. T. Ball and J. R. Larus, Optimally Profiling and Tracing Programs, ACM Trans. Progr. Lang. Syst., 16(4):1319–1360 (July 1994).

    Google Scholar 

  14. United Kingdom Defence Resesearch Agency, TDF Specification, Issue 2.1. (June 1993).

  15. Open Software Foundation, OSF Architecture-Neutral Distribution Format Rationale(1991).

  16. G. Hansen, Adaptive Systems for the Dynamic Run-Time Optimization of Programs, Ph.D. Dissertation, Department of Computer Science, Carnegie-Mellon University (1974).

  17. D. Wall, Systems for Late Code Modification, WRL Research Report 92/3, Digital Equipment Corporation, Western Research Laboratory, Palo Alto California (May 1992).

    Google Scholar 

  18. R. Hookway and M. Herdeg, DIGITAL FX!32: Combining Emulation and Binary Translation,Digital Tech. J., 9(1):3–12 (1997).

    Google Scholar 

  19. X. Zhang, Z. Wang, N. Gloy, J. Chen, and M. Smith, System Support for Automatic Profiling and Optimization, Proc. 16th ACM Symp. Oper. Syst. Principles(September 1997).

  20. Motorola, Inc. PowerPC 601: RISC Microprocessor User's Manual(1993).

  21. N. Wirth, The Programming Language Oberon, Software-Practice and Experience, 18(7):67–690 (July 1988).

    Google Scholar 

Download references

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Kistler, T., Franz, M. A Tree-Based Alternative to Java Byte-Codes. International Journal of Parallel Programming 27, 21–33 (1999). https://doi.org/10.1023/A:1018740018601

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1018740018601

Navigation