Treffer: The ExoVM system for automatic VM and application reduction

Title:
The ExoVM system for automatic VM and application reduction
Source:
PLDI'07 Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design & Implementation, June 10-13, 2007, San Diego, CAACM SIGPLAN notices. 42(6):352-362
Publisher Information:
Broadway, NY: ACM, 2007.
Publication Year:
2007
Physical Description:
print, 19 ref
Original Material:
INIST-CNRS
Subject Terms:
Computer science, Informatique, Sciences exactes et technologie, Exact sciences and technology, Sciences appliquees, Applied sciences, Informatique; automatique theorique; systemes, Computer science; control theory; systems, Logiciel, Software, Langages de programmation, Programming languages, Intelligence artificielle, Artificial intelligence, Reconnaissance des formes. Traitement numérique des images. Géométrie algorithmique, Pattern recognition. Digital image processing. Computational geometry, Analyse statique, Static analysis, Análisis estática, Calculateur embarqué, Boarded computer, Calculador embarque, Classe langage, Language class, Clase lenguaje, Compilation, Compilación, Elimination code, Code elimination, Eliminación código, Gestion mémoire, Storage management, Gestión memoria, Image binaire, Binary image, Imagen binaria, Initialisation, Initialization, Inicialización, Langage JAVA, JAVA language, Lenguaje JAVA, Langage machine, Machine language, Lenguaje máquina, Langage programmation, Programming language, Lenguaje programación, Long terme, Long term, Largo plazo, Machine unique, Single machine, Máquina única, Machine virtuelle, Virtual machine, Máquina virtual, Mémoire virtuelle, Virtual memory, Memoria virtual, Persistance, Persistence, Persistencia, Personnalisation, Customization, Personalización, Vérification programme, Program verification, Verificación programa, Modularité, Modularity, Modularidad, Design, Languages, Performance, VM design, VM modularity, Verification, dead code elimination, embedded systems, feature analysis, persistence, pre-initialization, static analysis, static compilation
Document Type:
Konferenz Conference Paper
File Description:
text
Language:
English
Author Affiliations:
UCLA Compilers Group, United States
IBM T.J. Watson Research Center, United States
ISSN:
1523-2867
Rights:
Copyright 2007 INIST-CNRS
CC BY 4.0
Sauf mention contraire ci-dessus, le contenu de cette notice bibliographique peut être utilisé dans le cadre d’une licence CC BY 4.0 Inist-CNRS / Unless otherwise stated above, the content of this bibliographic record may be used under a CC BY 4.0 licence by Inist-CNRS / A menos que se haya señalado antes, el contenido de este registro bibliográfico puede ser utilizado al amparo de una licencia CC BY 4.0 Inist-CNRS
Notes:
Computer science; theoretical automation; systems
Accession Number:
edscal.19110800
Database:
PASCAL Archive

Weitere Informationen

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.