[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ 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 2007 Publication 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.
[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.
[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.
[4]
Connected Limited Device Configuration (CLDC). http://java.sun.com/j2me
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[13]
Sun Microsystems, J2ME Building Blocks for Mobile Devices, 2000.
[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.
[15]
Z. Chen, Java Card Technology for Smart Cards: Architecture and Programmer's Guide. Addison-Wesley Longman Publishing Co., Inc., 2000.
[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.
[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.
[18]
D. Mulchandani, Java for embedded systems," Internet Computing, IEEE, vol. 2, no. 3, pp. 30--39, 1998.
[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.

Cited By

View all
  • (2019)Initialize once, start fast: application initialization at build timeProceedings of the ACM on Programming Languages10.1145/33606103:OOPSLA(1-29)Online publication date: 10-Oct-2019
  • (2018)Redundancy elimination in the presence of split class initializationProceedings of the 15th International Conference on Managed Languages & Runtimes10.1145/3237009.3237014(1-14)Online publication date: 12-Sep-2018
  • (2010)From OO to FPGAACM SIGPLAN Notices10.1145/1932682.186947045:10(109-124)Online publication date: 17-Oct-2010
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI '07: Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation
June 2007
508 pages
ISBN:9781595936332
DOI:10.1145/1250734
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 42, Issue 6
    Proceedings of the 2007 PLDI conference
    June 2007
    491 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1273442
    Issue’s Table of Contents
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 10 June 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. VM design
  2. VM modularity
  3. dead code elimination
  4. embedded systems
  5. feature analysis
  6. persistence
  7. pre-initialization
  8. static analysis
  9. static compilation

Qualifiers

  • Article

Conference

PLDI '07
Sponsor:

Acceptance Rates

Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2019)Initialize once, start fast: application initialization at build timeProceedings of the ACM on Programming Languages10.1145/33606103:OOPSLA(1-29)Online publication date: 10-Oct-2019
  • (2018)Redundancy elimination in the presence of split class initializationProceedings of the 15th International Conference on Managed Languages & Runtimes10.1145/3237009.3237014(1-14)Online publication date: 12-Sep-2018
  • (2010)From OO to FPGAACM SIGPLAN Notices10.1145/1932682.186947045:10(109-124)Online publication date: 17-Oct-2010
  • (2010)From OO to FPGAProceedings of the ACM international conference on Object oriented programming systems languages and applications10.1145/1869459.1869470(109-124)Online publication date: 17-Oct-2010
  • (2010)Run-time compilation of bytecode in wireless sensor networksProceedings of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks10.1145/1791212.1791286(422-423)Online publication date: 12-Apr-2010
  • (2010)Efficient off-board deployment and customization of virtual machine-based embedded systemsACM Transactions on Embedded Computing Systems10.1145/1698772.16987799:3(1-53)Online publication date: 5-Mar-2010
  • (2010)Run-Time Compilation of Bytecode in Sensor NetworksProceedings of the 2010 Fourth International Conference on Sensor Technologies and Applications10.1109/SENSORCOMM.2010.28(133-138)Online publication date: 18-Jul-2010
  • (2009)SlimVMProceedings of the 7th International Conference on Principles and Practice of Programming in Java10.1145/1596655.1596678(133-142)Online publication date: 27-Aug-2009
  • (2008)No bit left behindProceedings of the 7th international symposium on Memory management10.1145/1375634.1375651(111-120)Online publication date: 7-Jun-2008

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media