Practical Experience With An Application Extractor For Java
Program-Transformation.Org: The Program Transformation Wiki
Frank Tip, Chris Laffra, Peter F. Sweeny, David Streeter.
Practical Experience with an Application Extractor for Java. In Proceedings of the Fourteenth Annual Conference on Object-Oriented Programming Systems, Languages, and Applications(OOPSLA99), (Denver, Colorado, November 1--5, 1999).
Abstract
Java programs are routinely transmitted over low-bandwidth network
connections as compressed class file archives (i.e., zip files and jar
files). Since archive size is directly proportional to download time,
it is desirable for applications to be as small as possible. This
work is concerned with the use of program transformations such as
removal of dead methods and fields, inlining of method calls, and
simplification of the class hierarchy for reducing application
size. Such ``extraction_ techniques are generally believed to be
especially useful for applications that use class libraries, since
typically only a small fraction of a library's functionality is
used. By ``pruning away_ unused library functionality, application
size can be reduced dramatically. We implemented a number of
application extraction techniques in JAX, an application extractor for
Java, and evaluate their effectiveness on a set of realistic
benchmarks ranging from 27 to 2,332 classes (with archives ranging
from 56,796 to 3,810,120 bytes). We report archive size reductions
ranging from 13.4% to 90.2% (48.7% on average).
See also