skip to main content
article

Proxy compilation of dynamically loaded Java classes with MoJo

Authors Info & Claims
Published:19 June 2002Publication History
Skip Abstract Section

Abstract

Interest in Java implementations for resource-constrained environments such as embedded systems has been tempered by concerns regarding its efficiency. Current native compilers for Java offer dramatic increases in efficiency, but have poor support for dynamically-loaded classes, which are typically served by slow interpreters or JIT compilers, the code-size of this latter utterly mismatching the resource constraints of the system.After a brief survey of Ahead-of-Time compilers for Java, we present MoJo --- a new native compiler and the testbed for our proxy compilation scheme, which allows embedded clients to connect to servers and delegate compilation of Java class packages to native code libraries.We also present initial results from experimental testing using MoJo in a resource-constrained, mobile computing environment. We show that MoJo is faster than all surveyed Java implementations for the test platform executing our initial test application. Our proxy compilation scheme results in a 94% speed increase over the fastest tested interpreter system and a 20% speed increase over the fastest tested JIT system.The MoJo-generated binaries for the application are also shown to be 45 times smaller than those required by its nearest iPAQ JRE competitor and 275 times smaller than the Sun JRE v1.3.1 for iPAQ as a direct result of our incremental, on-demand transfer of API classes to the client.

References

  1. American National Standards Institute / International Standards Organisation. ISO/IEC 9899:1990, Programming Languages - CGoogle ScholarGoogle Scholar
  2. Borland/Inprise. JBuilder Homepage. http://www.borland.com/jbuilder/Google ScholarGoogle Scholar
  3. Department of Computer Science and Engineering, University of Washington. Cecil/Vortex Homepage. http://www.cs.washington.edu/research/projects/cecil/www/index.htmlGoogle ScholarGoogle Scholar
  4. Stephan Diehl. A Formal Introduction to the Compilation of Java. Software -- Practice and Experience, 28(3):297--327, March 1998 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Robert Fitzgerald, Todd~B. Knoblock, Erik Ruf, Bjarne Steensgaard, and David Tarditi. Marmot: An Optimizing Compiler for Java. Technical Report MSR-TR-99-33, Microsoft Research, June 1999Google ScholarGoogle Scholar
  6. James Gosling, Bill Joy, Guy Steele, and Gilad Bracha. The Java Language Specification. Addison-Wesley, 2nd edition, 1999 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. David Gregg, M. Anton Ertl, and Andreas Krall. A Fast Java Interpreter. In Java Optimization Strategies for Embedded Systems (JOSES), European Joint Conferences on Theory and Practice of Software (ETAPS) 2001 Workshop, April 2001. http://i44w3.info.uni-karlsruhe.de/~josesworkshop/Google ScholarGoogle Scholar
  8. Silicomp Group. Turbo-J Homepage. http://www.ri.silicomp.fr/adv-dvt/java/turbo/Google ScholarGoogle Scholar
  9. Tao Group. Elate/Insight Homepage. http://www.tao.co.ukGoogle ScholarGoogle Scholar
  10. Emin Gün Sirer, Robert Grimm, Arthur J. Gregory, and Brian N. Bershad. Design and Implementation of a Distributed Virtual Machine for Networked Computers. In Symposium on Operating Systems Principles, volume 34, pages 202--216. University of Washington, Department of Computer Science and Engineering, December 1999 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Red Hat Inc. GCJ Homepage. http://sources.redhat.com/java/Google ScholarGoogle Scholar
  12. Insignia Solutions plc. Jeode Platform Data Sheet. http://www.insignia.com/product/jeode_ds.htm, November 2000Google ScholarGoogle Scholar
  13. Java World. Which Java VM Scales Best? http://www.javaworld.com/javaworld/jw-08-1998/jw-08-volanomark.html, August 1998Google ScholarGoogle Scholar
  14. Andreas Krall and Mark Probst. Monitors and Exceptions: How to Implement Java Efficiently. In ACM 1998 Workshop on Java for High-Performance Network Computing, pages 15--24, February 1988Google ScholarGoogle Scholar
  15. Tim Lindholm and Frank Yellin. The Java Virtual Machine Specification. Addison-Wesley, 2nd edition, 1999 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. G. Muller, B. Moura, F. Bellard, and C. Consel, IRISA / INRIA, University of Rennes. Harissa: A Flexible and Efficient Java Environment Mixing Bytecode and Compiled Code. In 3rd Usenix Conference on Object-Oriented Technologies and Systems (COOTS '97), pages 1--20, Portland, Oregon, June 1997 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Gilles Muller and Ulrik Pagh Schultz. Harissa: A Hybrid Approach to Java Execution. IEEE Software, pages 44--51, March/April 1999 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. University of Georgia. Introduction to IBM MVS JCL. http://www.uga.edu/ucns/hostsys/mvs/ibm-jcl-intro.html#1Google ScholarGoogle Scholar
  19. Michael P. Plezbert. Continuous Compilation for Software Development and Mobile Computing. Master's thesis, Department of Computer Science, Washington University, May 1996Google ScholarGoogle Scholar
  20. M.P. Plezbert and R.K. Cytron. Does "Just in Time" = "Better Late than Never". In Proceedings of POPL'97, pages 120--131, Paris, France, January 1997 Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. J. Postel. RFC 793: Transmission Control Protocol. ftp://ftp.internic.net/rfc/rfc793.txt, September 1981Google ScholarGoogle Scholar
  22. Todd A. Proebsting, Gregg Townsend, Patrick Bridges, John H. Hartman, Tim Newsham, and Scott A. Watterson. Toba: Java for Applications: A Way-Ahead-of-Time Compiler. Technical report, University of Arizona, January 1997 Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Ramesh Radhakrishnan, Ravi Bhargava, and Lizy K. John. Improving Java Performance Using Hardware Translation. In Proceedings of the ACM International Conference on Supercomputing. ACM Press, 2001 Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Silicomp Research Institute. JCod: Dynamic Compilation for Networked Devices. http://www.ri.silicomp.fr/technologies/compilers.html, February 2002Google ScholarGoogle Scholar
  25. Govind Seshadri, Editor-in-Chief. The VM Wars: JITs vs. Native Java Compilers. Java Report Online, 1999Google ScholarGoogle Scholar
  26. Kazuyuki Shudo. Shujit Homepage. http://www.shudo.net/jit/Google ScholarGoogle Scholar
  27. Sun Microsytems. The Java Hotspot Performance Engine Architecture (White Paper). http://www.javasoft.com/pr/1999/04/pr990427-01.html, November 2000Google ScholarGoogle Scholar
  28. Transvirtual Technologies. Kaffe Project Homepage. http://www.kaffe.orgGoogle ScholarGoogle Scholar
  29. Ronald Veldema. Jcc, A Native Compiler. PhD thesis, Department of Mathematics and Computer Science, Vrije Universiteit, Amsterdam, Netherlands, July 1998Google ScholarGoogle Scholar
  30. Michael J. Voss and Rudolf Eigenmann. A Framework for Remote Dynamic Program Optimization. In Jong-Deok Choi, editor, Proceedings of the ACM SIGPLAN Workshop on Dynamic and Adaptive Compilation and Optimization (Dynamo '00), volume 35, pages 32--40, Boston, MA, July 2000. Association of Computing Machinery, ACM Press Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Proxy compilation of dynamically loaded Java classes with MoJo

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in

                Full Access

                • Published in

                  cover image ACM SIGPLAN Notices
                  ACM SIGPLAN Notices  Volume 37, Issue 7
                  July 2002
                  232 pages
                  ISSN:0362-1340
                  EISSN:1558-1160
                  DOI:10.1145/566225
                  Issue’s Table of Contents
                  • cover image ACM Conferences
                    LCTES/SCOPES '02: Proceedings of the joint conference on Languages, compilers and tools for embedded systems: software and compilers for embedded systems
                    June 2002
                    244 pages
                    ISBN:1581135270
                    DOI:10.1145/513829

                  Copyright © 2002 ACM

                  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: 19 June 2002

                  Check for updates

                  Qualifiers

                  • article

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader