|
ABSTRACT
Reducing application size is important for software that is distributed via the internet, in order to keep download times manageable, and in the domain of embedded systems, where applications are often stored in (Read-Only or Flash) memory. This paper explores extraction techniques such as the removal of unreachable methods and redundant fields, inlining of method calls, and transformation of the class hierarchy for reducing application size. We implemented a number of extraction techniques in Jax, an application extractor for Java, and evaluated their effectiveness on a set of large Java applications. We found that, on average, the class file archives for these benchmarks were reduced to 37.5% of their original size. Modeling dynamic language features such as reflection, and extracting software distributions other than complete applications requires additional user input. We present a uniform approach for supplying this input that relies on MEL, a modular specification language. We also discuss a number of issues and challenges associated with the extraction of embedded systems applications.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
 |
2
|
Ole Agesen , David Ungar, Sifting out the gold: delivering compact applications from an exploratory object-oriented programming environment, Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications, p.355-370, October 23-28, 1994, Portland, Oregon, United States
|
| |
3
|
|
| |
4
|
|
| |
5
|
|
 |
6
|
David F. Bacon , Peter F. Sweeney, Fast static analysis of C++ virtual function calls, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.324-341, October 06-10, 1996, San Jose, California, United States
|
| |
7
|
Quetzalcoatl Bradley , R. Nigel Horspool , Jan Vitek, JAZZ: an efficient compressed format for Java archive files, Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research, p.7, November 30-December 03, 1998, Toronto, Ontario, Canada
|
 |
8
|
Michael G. Burke , Jong-Deok Choi , Stephen Fink , David Grove , Michael Hind , Vivek Sarkar , Mauricio J. Serrano , V. C. Sreedhar , Harini Srinivasan , John Whaley, The Jalapeño dynamic optimizing compiler for Java, Proceedings of the ACM 1999 conference on Java Grande, p.129-141, June 12-14, 1999, San Francisco, California, United States
[doi> 10.1145/304065.304113]
|
 |
9
|
|
| |
10
|
|
| |
11
|
|
 |
12
|
|
 |
13
|
|
| |
14
|
De Sutter, B. 2002. Compactie van programma's na het linken. Ph.D. thesis, Gent University. In Dutch.
|
 |
15
|
Bjorn De Sutter , Bruno De Bus , Koen De Bosschere, Sifting out the mud: low level C++ code reuse, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
 |
16
|
Bjorn De Sutter , Bruno De Bus , Koen De Bosschere , Saumya Debray, Combining Global Code and Data Compaction, Proceedings of the ACM SIGPLAN workshop on Languages, compilers and tools for embedded systems, p.29-38, August 2001, Snow Bird, Utah, United States
|
| |
17
|
|
 |
18
|
|
| |
19
|
Digitalk Inc. 1993. Smalltalk/V for win32 Programming. Digitalk Inc. Chapter 17: Object Libraries and Library Builder.
|
| |
20
|
Eisma, A. 2001. Feedback directed ahead-of-time compilation for embedded Java applications. In Java Optimization Strategies for Embedded Systems, U. Assmann, Ed. Genova, Italy, 105--112. Workshop held at ETAPS'01.
|
 |
21
|
Jens Ernst , William Evans , Christopher W. Fraser , Todd A. Proebsting , Steven Lucco, Code compression, Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, p.358-365, June 16-18, 1997, Las Vegas, Nevada, United States
|
| |
22
|
Fowler, M. 1999. Refactoring. Addison-Wesley.
|
 |
23
|
|
 |
24
|
David Grove , Greg DeFouw , Jeffrey Dean , Craig Chambers, Call graph construction in object-oriented languages, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.108-124, October 05-09, 1997, Atlanta, Georgia, United States
|
| |
25
|
|
| |
26
|
IBM Corporation 1995. IBM Smalltalk User's Guide, Version 3.0 ed. IBM Corporation. Chapter 36: Introduction to Packaging, Chapter 37: Simple Packaging, Chapter 38: Advanced Packaging.
|
| |
27
|
James Gosling , Bill Joy , Guy Steele , Gilad Bracha, Java Language Specification, Second Edition: The Java Series, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 2000
|
 |
28
|
|
| |
29
|
|
 |
30
|
Chandra Krintz , Brad Calder , Han Bok Lee , Benjamin G. Zorn, Overlapping execution with transfer using non-strict execution for mobile programs, Proceedings of the eighth international conference on Architectural support for programming languages and operating systems, p.159-169, October 02-07, 1998, San Jose, California, United States
|
| |
31
|
|
| |
32
|
|
| |
33
|
ParcPlace Systems 1992. ParcPlace Smalltalk, ObjectWorks Release 4.1 ed. ParcPlace Systems. Section 16: Deploying an Application, Section 28: Binary Object Streaming Service.
|
| |
34
|
|
 |
35
|
|
| |
36
|
|
| |
37
|
Derek Rayside , Evan Mamas , Erik Hons, Compact Java binaries for embedded systems, Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research, p.9, November 08-11, 1999, Mississauga, Ontario, Canada
|
 |
38
|
|
 |
39
|
|
 |
40
|
|
 |
41
|
|
| |
42
|
|
 |
43
|
|
| |
44
|
Sun Microsystems 1997. JavaBeans, Version 1.01 ed. Sun Microsystems, 2550 Garcia Avenue, Mountain View, CA 94043.
|
| |
45
|
Sun Microsystems 1999. Java 2 {S}oftware Development Kit, Version 1.2.2 ed. Sun Microsystems, 2550 Garcia Avenue, Mountain View, CA 94043. Available at http://java.sun.com/docs/books/ tutorial/ext/security/sealing.html.
|
 |
46
|
Vijay Sundaresan , Laurie Hendren , Chrislain Razafimahefa , Raja Vallée-Rai , Patrick Lam , Etienne Gagnon , Charles Godin, Practical virtual method call resolution for Java, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.264-280, October 2000, Minneapolis, Minnesota, United States
|
 |
47
|
|
 |
48
|
|
| |
49
|
Thies, M. 1999a. A closer look at inter-library dependencies in Java-software. In Java-Informations-Tage 1999 (JIT'99). Informatik Aktuell. Springer Verlag.
|
| |
50
|
Thies, M. 1999b. Static compositional analysis of libraries in support of dynamic optimization. Technischer Bericht tr-ri-99-210, University of Paderborn. Aug.
|
 |
51
|
Frank Tip , Jong-Deok Choi , John Field , G. Ramalingam, Slicing class hierarchies in C++, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.179-197, October 06-10, 1996, San Jose, California, United States
|
 |
52
|
Frank Tip , Chris Laffra , Peter F. Sweeney , David Streeter, Practical experience with an application extractor for Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.292-305, November 01-05, 1999, Denver, Colorado, United States
|
 |
53
|
Frank Tip , Jens Palsberg, Scalable propagation-based call graph construction algorithms, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.281-293, October 2000, Minneapolis, Minnesota, United States
|
 |
54
|
Frank Tip , Peter F. Sweeney, Class hierarchy specialization, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.271-285, October 05-09, 1997, Atlanta, Georgia, United States
|
| |
55
|
|
 |
56
|
Ayal Zaks , Vitaly Feldman , Nava Aizikowitz, Sealed calls in Java packages, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.83-92, October 2000, Minneapolis, Minnesota, United States
|
CITED BY 17
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Maximilian Stoerzer , Barbara G. Ryder , Xiaoxia Ren , Frank Tip, Finding failure-inducing changes in java programs using change classification, Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, November 05-11, 2006, Portland, Oregon, USA
|
|
|
Zhuang Guo , José Nelson Amaral , Duane Szafron , Yang Wang, Utilizing field usage patterns for Java heap space optimization, Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research, October 16-19, 2006, Toronto, Ontario, Canada
|
|
|
|
|
|
|
|
|
A. Dreweke , M. Worlein , I. Fischer , D. Schell , Th. Meinl , M. Philippsen, Graph-Based Procedural Abstraction, Proceedings of the International Symposium on Code Generation and Optimization, p.259-270, March 11-14, 2007
|
|
|
|
|
|
|
|
|
|
REVIEW
"Lunjin Lu : Reviewer"
The authors previously developed Jax, a suite of tools for extracting an application, in order to reduce its size and improve its execution time. This paper presents methods for analyzing, extracting, and transforming applications as implemented i
more...
|