skip to main content
10.1145/1596655.1596678acmconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
research-article

SlimVM: a small footprint Java virtual machine for connected embedded systems

Published:27 August 2009Publication History

ABSTRACT

The usage of cellular phones, PDAs, and other mobile devices has increased dramatically over the past ten years. Java is targeted to be one of the most popular execution environments on such systems. However, since mobile devices are inherently limited in terms of local storage capacity and Java requires large amounts of library code to be present on each client device, it is crucial to reduce the code and memory footprint to ensure Java's success on such systems. SlimVM's approach eliminates all unnecessary code and meta information on mobile devices.

We present a solution for the next generation of mobile computing environments for persistent connected embedded systems where all code resides on a network server and is requested at run time by the Java virtual machine on the client. All application and library code is analyzed on the server prior to execution on the mobile device, and only code essential for execution is sent to the client on demand. Java bytecode is manipulated and transferred to the client in the form of pre-linked basic blocks. Measurements show a reduction of the memory footprint of up to 70%.

References

  1. D. N. Antonioli and M. Pilz. Analysis of the Java class file format. Technical report, Department of Computer Science, University of Zurich, 1998.Google ScholarGoogle Scholar
  2. Q. Bradley, R. N. Horspool, and J. Vitek. JAZZ: An efficient compressed format for Java archive files. In Proceedings of the Conference of the Centre for Advanced Studies on Collaborative Research, pages 294--302. IBM Press, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. M. Bull, L. A. Smith, M. D. Westhead, D. S. Henty, and R. A. Davey. A benchmark suite for high performance Java. Concurrency: Practice and Experience, 12(6):375--388, 2000.Google ScholarGoogle ScholarCross RefCross Ref
  4. J. A. Butts and G. Sohi. Dynamic dead-instruction detection and elimination. In ASPLOS-X: Proceedings of the 10th international conference on Architectural support for programming languages and operating systems, pages 199--210, New York, NY, USA, 2002. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. L. R. Clausen, U. P. Schultz, C. Consel, and G. Muller. Java bytecode compression for low-end embedded systems. ACM Transactions on Programming Languages and Systems, 22(3):471--489, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Dahm. Byte code engineering with the BCEL API. Technical Report B-17-98, Institut für Informatik, 2001.Google ScholarGoogle Scholar
  7. P. Deutsch. GZIP File Format Specification Version 4.3. http://www.ietf.org/rfc/rfc1952.txt.Google ScholarGoogle Scholar
  8. J. Ernst, W. Evans, C. W. Fraser, T. A. Proebsting, and S. Lucco. Code compression. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 358--365. ACM Press, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Franz and T. Kistler. Slim binaries. Communications of the ACM, 40(12):87--94, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. GNU Classpath, 2009. http://www.gnu.org/software/classpath/.Google ScholarGoogle Scholar
  11. M. Jeckle. Linpack Benchmark -- Java Version, 2004. http://www.jeckle.de/freeStuff/jLinpack/.Google ScholarGoogle Scholar
  12. M. Latendresse and M. Feeley. Generation of fast interpreters for Huffman compressed bytecode. In Proceedings of the Workshop on Interpreters, Virtual Machines, and Emulators, pages 32--40. ACM Press, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Liang. The Java Native Interface -- Programer's Guide and Specification. The Java Series. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. T. Lindholm and F. Yellin. The Java Virtual Machine Specification, Second Edition. The Java Series. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. R. Lougher. JamVM, 2009. http://jamvm.sourceforge.net/.Google ScholarGoogle Scholar
  16. PKWARE. .ZIP File Format Specification, 1989. http://pkware.com/documents/casestudies/APPNOTE.TXT.Google ScholarGoogle Scholar
  17. R. Pozo and B. Miller. SciMark 2.0, 1999. http://math.nist.gov/scimark2/.Google ScholarGoogle Scholar
  18. W. Pugh. Compressing Java class files. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 247--258. ACM Press, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. D. Rayside, E. Mamas, and E. Hons. Compact Java binaries for embedded systems. In Proceedings of the Conference of the Centre for Advanced Studies on Collaborative Research, pages 1--14. IBM Press, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Standard Performance Evaluation Corporation. The SPECjvm98 Benchmarks, 1998. http://www.spec.org/jvm98/.Google ScholarGoogle Scholar
  21. Sun Microsystems, Inc. The K virtual machine (KVM) white paper, 1999. http://java.sun.com/products/cldc/wp/.Google ScholarGoogle Scholar
  22. Sun Microsystems, Inc. JAR File Specification, 2003. http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html.Google ScholarGoogle Scholar
  23. Sun Microsystems, Inc. Java ME at a Glance, 2009. http://java.sun.com/javame/.Google ScholarGoogle Scholar
  24. B. L. Titzer, J. Auerbach, D. F. Bacon, and J. Palsberg. The ExoVM system for automatic VM and application reduction. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 352--362. ACM press, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. G. Wagner, A. Gal, and M. Franz. SlimVM: Optimistic partial program loading for connected embedded Java virtual machines. In Proceedings of the International Symposium on Principles and Practice of Programming in Java, pages 117--126. ACM Press, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Y.-S. Yang, M.-S. Jin, S.-I. Jun, and M.-S. Jung. A study on an efficient pre-resolution method for embedded java system. pages 20--24, July 2004.Google ScholarGoogle Scholar

Index Terms

  1. SlimVM: a small footprint Java virtual machine for connected embedded systems

    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
    • Published in

      cover image ACM Conferences
      PPPJ '09: Proceedings of the 7th International Conference on Principles and Practice of Programming in Java
      August 2009
      200 pages
      ISBN:9781605585987
      DOI:10.1145/1596655

      Copyright © 2009 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: 27 August 2009

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate29of58submissions,50%
    • Article Metrics

      • Downloads (Last 12 months)3
      • Downloads (Last 6 weeks)0

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader