Affiliation:
1. IBM T. J. Watson Research Center, Yorktown Heights, NY
2. Object Technology International, Amstelveen, The Netherlands
3. IBM Toronto Laboratory, Toronto, Ontario, Canada
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.
Publisher
Association for Computing Machinery (ACM)
Reference52 articles.
1. Arnold K. Gosling J. and Holmes D. 2000. The Java Programming Language Third Edition Addison-Wesley.]] Arnold K. Gosling J. and Holmes D. 2000. The Java Programming Language Third Edition Addison-Wesley.]]
Cited by
38 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. On the Caching Schemes to Speed Up Program Reduction;ACM Transactions on Software Engineering and Methodology;2023-11-24
2. Coverage-Based Debloating for Java Bytecode;ACM Transactions on Software Engineering and Methodology;2023-04-04
3. Stubbifier: debloating dynamic server-side JavaScript applications;Empirical Software Engineering;2022-09-20
4. On the Real-World Effectiveness of Static Bug Detectors at Finding Null Pointer Exceptions;2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE);2021-11
5. WebJShrink: a web service for debloating Java bytecode;Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2020-11-07