Affiliation:
1. Tel-Aviv University and IBM Haifa Research Laboratory
2. IBM Haifa Research Laboratory
3. Tel-Aviv University
Abstract
We present a heap-profiling tool for exploring the potential for space savings in Java programs. The output of the tool is used to direct rewriting of application source code in a way that allows more timely garbage collection (GC) of objects, thus saving space. The rewriting can also avoid allocating some objects that are never used.
The tool measures the difference between the actual collection time and the potential earliest collection time of objects for a Java application. This time difference indicates potential savings. Then the tool sorts the allocation sites in the application source code according to the accumulated potential space saving for the objects allocated at the sites. A programmer can investigate the source code surrounding the sites with the highest savings to find opportunities for code rewriting that could save space. Our experience shows that in many cases simple code rewriting leads to actual space savings and in some cases also to improvements in program runtime.
Experimental results using the tool and manually rewriting code show average space savings of 18% for the SPECjvm98 benchmark suite. Results for other benchmarks are also promising. We have also classified the program transformations that we have used and argue that in many cases improvements can be achieved by an optimizing compiler.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
16 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Detection of suspicious time windows in memory monitoring;Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes - MPLR 2019;2019
2. Detailed heap profiling;Proceedings of the 2018 ACM SIGPLAN International Symposium on Memory Management;2018-06-18
3. On the Efficiency of Convex Polyhedra;Electronic Notes in Theoretical Computer Science;2018-04
4. An Efficient Abstract Domain for Not Necessarily Closed Polyhedra;Static Analysis;2018
5. Liveness-based garbage collection for lazy languages;Proceedings of the 2016 ACM SIGPLAN International Symposium on Memory Management;2016-06-14