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.
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Connected Limited Device Configuration (CLDC). http://java.sun.com/j2meGoogle Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Sun Microsystems, J2ME Building Blocks for Mobile Devices, 2000.Google Scholar
- 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 Scholar
Digital Library
- Z. Chen, Java Card Technology for Smart Cards: Architecture and Programmer's Guide. Addison-Wesley Longman Publishing Co., Inc., 2000. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- D. Mulchandani, Java for embedded systems," Internet Computing, IEEE, vol. 2, no. 3, pp. 30--39, 1998. Google Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
The ExoVM system for automatic VM and application reduction
Recommendations
The ExoVM system for automatic VM and application reduction
Proceedings of the 2007 PLDI conferenceEmbedded 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 ...
Maxine: An approachable virtual machine for, and in, java
Special Issue on High-Performance Embedded Architectures and CompilersA highly productive platform accelerates the production of research results. The design of a Virtual Machine (VM) written in the Java™ programming language can be simplified through exploitation of interfaces, type and memory safety, automated memory ...
Aggregate VM: Why Reduce or Evict VM's Resources When You Can Borrow Them From Other Nodes?
EuroSys '23: Proceedings of the Eighteenth European Conference on Computer SystemsHardware resource fragmentation is a common issue in data centers. Traditional solutions based on migration or overcommitment are unacceptably slow, and modern commercial or research solutions like Spot VM may reduce or evict VM's resources anytime. ...







Comments