skip to main content
10.1145/2807426.2807433acmotherconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
research-article

Efficient Rebuilding of Large Java Heaps from Event Traces

Published: 08 September 2015 Publication History

Abstract

Understanding and tracking down memory-related performance problems, such as long garbage collection times and memory leaks, is a tedious task in large and complex applications. Memory profilers can support developers in this task by recording detailed traces of the application's memory behavior which can then be analyzed offline. Unfortunately, these traces can become huge, and processing them is a real challenge. If the goal is to rebuild the heap from a trace in order to analyze it, most state-of-the-art tools perform badly, because they are either too slow or provide only a coarse-grained view of the monitored application.
In this paper we present novel techniques and data structures for efficiently processing large event traces and for reconstructing the heap with only a fraction of the monitored application's memory. The reconstructed heap contains vital information about all objects, such as their addresses, their types, their allocation sites, and their allocating threads.
We also provide a detailed evaluation of our approach on 33 benchmarks, showing that we can rebuild the heap from a trace efficiently using only about 18% of the memory that was used in the monitored application.

References

[1]
S. M. Blackburn, R. Garner, C. Hoffmann, A. M. Khang, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In Proc. of the Annual ACM SIGPLAN Conf. on Object-oriented Programming Systems, Languages, and Applications, pages 169--190, 2006.
[2]
Y. Bu, V. Borkar, G. Xu, and M. J. Carey. A bloat-aware design for big data applications. In Proc. of the 2013 Int'l. Symp. on Memory Management, pages 119--130, 2013.
[3]
M. Hertz, S. M. Blackburn, J. E. B. Moss, K. S. McKinley, and D. Stefanović. Error-free garbage collection traces: How to cheat and not get caught. In Proc. of the 2002 ACM SIGMETRICS Int'l Conf. on Measurement and Modeling of Computer Systems, pages 140--151, 2002.
[4]
M. Hertz, S. M. Blackburn, J. E. B. Moss, K. S. McKinley, and D. Stefanović. Generating object lifetime traces with merlin. ACM Trans. Program. Lang. Syst., 28(3):476--516, May 2006.
[5]
T. Janjusic and K. Kavi. Gleipnir: A memory profiling and tracing tool. SIGARCH Comput. Archit. News, 41(4):8--12, Dec. 2013.
[6]
P. G. Joisha. Sticky tries: Fast insertions, fast lookups, no deletions for large key universes. In Proc. of the 2014 Int'l. Symp. on Memory Management, pages 35--46, 2014.
[7]
P. Lengauer, V. Bitto, and H. Mössenböck. Accurate and efficient object tracing for java applications. In Proc. of the 6th ACM/SPEC Int'l. Conf. on Performance Engineering, ICPE '15, pages 51--62, 2015.
[8]
H. Lieberman and C. Hewitt. A Real-time Garbage Collector Based on the Lifetimes of Objects. Commun. ACM, 26(6):419--429, 1983.
[9]
T. Printezis and R. Jones. Gcspy: An adaptable heap visualisation framework. In Proc. of the 17th ACM SIGPLAN Conf. on Object-oriented Programming, Systems, Languages, and Applications, pages 343--358, 2002.
[10]
N. P. Ricci, S. Z. Guyer, and J. E. B. Moss. Elephant tracks: Portable production of complete and precise gc traces. In Proc. of the 2013 Int'l Symp. on Memory Management, pages 109--118, 2013.
[11]
A. Sewe, M. Mezini, A. Sarimbekov, and W. Binder. Da capo con scala: Design and analysis of a scala benchmark suite for the java virtual machine. In Proc. of the 2011 ACM Int'l. Conf. on Object Oriented Programming Systems Languages and Applications, OOPSLA '11, pages 657--676, 2011.
[12]
D. Ungar. Generation Scavenging: A Non-disruptive High Performance Storage Reclamation Algorithm. In Proc. of the ACM SIGSOFT/SIGPLAN Software Engineering Symp. on Practical Software Development Environments, pages 157--167, 1984.
[13]
Q. Zhao, D. Bruening, and S. Amarasinghe. Efficient memory shadowing for 64-bit architectures. In Proc. of the 2010 Int'l. Symp. on Memory Management, pages 93--102, 2010.

Cited By

View all
  • (2022)Analysis of Garbage Collection Patterns to Extend Microbenchmarks for Big Data WorkloadsCompanion of the 2022 ACM/SPEC International Conference on Performance Engineering10.1145/3491204.3527473(121-128)Online publication date: 14-Jul-2022
  • (2021)Guided ExplorationProceedings of the ACM on Human-Computer Interaction10.1145/34617315:EICS(1-34)Online publication date: 29-May-2021
  • (2020)Memory Cities: Visualizing Heap Memory Evolution Using the Software City Metaphor2020 Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT51673.2020.00017(110-121)Online publication date: Sep-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
PPPJ '15: Proceedings of the Principles and Practices of Programming on The Java Platform
September 2015
190 pages
ISBN:9781450337120
DOI:10.1145/2807426
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 08 September 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Garbage Collection
  2. Java
  3. Large Event Traces
  4. Trace Processing

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Funding Sources

Conference

PPPJ '15

Acceptance Rates

PPPJ '15 Paper Acceptance Rate 15 of 27 submissions, 56%;
Overall Acceptance Rate 29 of 58 submissions, 50%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Analysis of Garbage Collection Patterns to Extend Microbenchmarks for Big Data WorkloadsCompanion of the 2022 ACM/SPEC International Conference on Performance Engineering10.1145/3491204.3527473(121-128)Online publication date: 14-Jul-2022
  • (2021)Guided ExplorationProceedings of the ACM on Human-Computer Interaction10.1145/34617315:EICS(1-34)Online publication date: 29-May-2021
  • (2020)Memory Cities: Visualizing Heap Memory Evolution Using the Software City Metaphor2020 Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT51673.2020.00017(110-121)Online publication date: Sep-2020
  • (2019)Detection of suspicious time windows in memory monitoringProceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3357390.3361025(95-104)Online publication date: 21-Oct-2019
  • (2019)AntTracks TrendVizCompanion of the 2019 ACM/SPEC International Conference on Performance Engineering10.1145/3302541.3313100(29-32)Online publication date: 27-Mar-2019
  • (2019)Analyzing Data Structure Growth Over Time to Facilitate Memory Leak DetectionProceedings of the 2019 ACM/SPEC International Conference on Performance Engineering10.1145/3297663.3310297(273-284)Online publication date: 4-Apr-2019
  • (2018)Utilizing object reference graphs and garbage collection roots to detect memory leaks in offline memory monitoringProceedings of the 15th International Conference on Managed Languages & Runtimes10.1145/3237009.3237023(1-13)Online publication date: 12-Sep-2018
  • (2018)User-defined Classification and Multi-level Grouping of Objects in Memory MonitoringProceedings of the 2018 ACM/SPEC International Conference on Performance Engineering10.1145/3184407.3184412(115-126)Online publication date: 30-Mar-2018
  • (2017)User-centered Offline Analysis of Memory Monitoring DataProceedings of the 8th ACM/SPEC on International Conference on Performance Engineering10.1145/3030207.3030236(357-360)Online publication date: 17-Apr-2017
  • (2016)Efficient Memory Traces with Full Pointer InformationProceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools10.1145/2972206.2972220(1-11)Online publication date: 29-Aug-2016
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media