skip to main content
10.1145/1250734.1250775acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

The ExoVM system for automatic VM and application reduction

Published:10 June 2007Publication History

ABSTRACT

Embedded systems pose unique challenges to Java application developers and virtual machine designers. Chief among these challenges is the memory footprint of both the virtual machine and the applications that run within it. With the rapidly increasing set of features provided by the Java language, virtual machine designers are often forced to build custom implementations that make various tradeoffs between the footprint of the virtual machine and the subset of the Java language and class libraries that are supported. In this paper, we present the ExoVM, a system in which an application is initialized in a fully featured virtual machine, and then the code, data, and virtual machine features necessary to execute it are packaged into a binary image. Key to this process is feature analysis, a technique for computing the reachable code and data of a Java program and its implementation inside the VM simultaneously. The ExoVM reduces the need to develop customized embedded virtual machines by reusing a single VM infrastructure and automatically eliding the implementation of unused Java features on a per-program basis. We present a constraint-based instantiation of the analysis technique, an implementation in IBM's J9 Java VM, experiments evaluating our technique for the EEMBC benchmark suite, and some discussion of the individual costs of some of Java's features. Our evaluation shows that our system can reduce the non-heap memory allocation of the virtual machine by as much as 75%. We discuss VM and language design decisions that our work shows are important in targeting embedded systems, supporting the long-term goal of a common VM infrastructure spanning from motes to large servers.

References

  1. C. Ananian and M. Rinard. Data Size Optimizations for Java Programs. In 2003 Workshop on Languages, Compilers, and Tools for Embedded Systems (LCTES '03). San Diego, CA. June 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. D. Bacon and P. Sweeney. Fast Static Analysis of C++ Virtual Calls. In Proceedings of the 11th Annual Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA '96). San Jose, CA. Oct. 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. G. Chen, M. Kandemir, N. Vijaykrishnan, M. Irwin, B. Mathiske, and M. Wolczko. Heap Compression for Memory-constrained Java Environments. In Proceedings of the 18th Annual Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA '03). Anaheim, CA. Oct 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Connected Limited Device Configuration (CLDC). http://java.sun.com/j2meGoogle ScholarGoogle Scholar
  5. A. Courbot, G. Grimaud, and J.-J. Vandewalle. Romization: Early Deployment and Customization of Java Systems for Constrained Devices. In Proceedings of Second International Workshop on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices (CASSIS). Nice, France, Mar 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Dean, D. Grove, and C. Chambers. Optimization of Object-Oriented Programs using Static Class Hierarchy Analysis. In the 9th European Conference on Object-Oriented Programming (ECOOP '95). Aarhus, Denmark. Aug. 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. Koshy and R. Pandey. VM*: A Scalable Runtime Environment for Sensor Networks. In The 3rd annual conference on Embedded Network Sensor Systems (SENSYS '05). San Diego, CA. Nov. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. T. Onodera and K. Kawachiya. A study of locking objects with bimodal fields. In Proceedings of the 14th Annual Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA '99). New York, New York. Nov. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. Spoonhower, J. Auerbach, D. Bacon, P. Cheng, and D. Grove. Eventrons: A Safe Programming Construct for High-Frequency Hard Real-Time Applications. In Proceedings of the ACM Conference on Programming Language Design and Implementation (PLDI '06) Ottawa, CN. June 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. F. Tip, C. Laffra, P. Sweeney, and D. Streeter. Practical experience with an application extractor for Java. In Proceedings of the 14th Annual Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA '99). New York, New York. Nov. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. F. Tip and J. Palsberg. Scalable Propagation-based Call Graph Construction Algorithms. In the 15th Annual Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '00). Minneapolis, MN. Oct. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. B. L. Titzer. Virgil: Objects on the Head of a Pin. In Proceedings of the 21th Annual Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA '06). Portland, Oregon. Oct. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Sun Microsystems, J2ME Building Blocks for Mobile Devices, 2000.Google ScholarGoogle Scholar
  14. D. Rayside and K. Kontogiannis, Extracting Java library subsets for deployment on embedded systems," Sci. Comput. Program., vol. 45, no. 2-3, pp. 245--270, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Z. Chen, Java Card Technology for Smart Cards: Architecture and Programmer's Guide. Addison-Wesley Longman Publishing Co., Inc., 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. D. Rayside, E. Mamas, and E. Hons, Compact java binaries for embedded systems," in Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research, p. 9, IBM Press, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. D.-W. Chang and R.-C. Chang, Ejvm: an economic java run-time environment for embedded devices," Software Practice & Experience, vol. 31, no. 2, pp. 129--146, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. Mulchandani, Java for embedded systems," Internet Computing, IEEE, vol. 2, no. 3, pp. 30--39, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. P. Atkinson, M. Dmitriev, C. Hamilton, T. Printezis: Scalable and Recoverable Implementation of Object Evolution for the PJama1 Platform. POS 2000: 292--314. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The ExoVM system for automatic VM and application reduction

        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

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!