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

Efficient Memory Traces with Full Pointer Information

Published: 29 August 2016 Publication History

Abstract

Tracing objects and their references is paramount for tracking down memory-related performance problems. In this paper, we present a novel approach for recording references between objects at minimal run-time overhead. Extending our memory monitoring tool AntTracks with pointer information allows for a complete reconstruction of the heap before and after garbage collections as well as for an offline analysis of all garbage collection decisions made. Additionally, we describe several trace optimization techniques, such as exploiting VM-internal information, to reduce the tracing overhead even further. We evaluate our approach by means of the DaCapo benchmark suite and a selection of memory-intensive benchmarks from the DaCapoScala benchmark suite and the SPECjvm benchmark suite.

References

[1]
E. Aftandilian and S. Z. Guyer. Gc assertions: Using the garbage collector to check heap properties. In Proceedings of the 2008 ACM SIGPLAN Workshop on Memory Systems Performance and Correctness: Held in Conjunction with the Thirteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '08), MSPC '08, pages 36--40, New York, NY, USA, 2008.
[2]
M. Arnold, M. Vechev, and E. Yahav. Qvm: An efficient runtime for detecting defects in deployed systems. In Proceedings of the 23rd ACM SIGPLAN Conference on Object-oriented Programming Systems Languages and Applications, OOPSLA '08, pages 143--162, New York, NY, USA, 2008.
[3]
V. Bitto, P. Lengauer, and H. Mössenböck. Efficient rebuilding of large java heaps from event traces. In Proceedings of the Principles and Practices of Programming on The Java Platform, PPPJ 2015, Melbourne, FL, USA, September 8-11, 2015, pages 76--89, 2015.
[4]
V. Bitto, P. Lengauer, and H. Mössenböck. Building custom, efficient and accurate memory monitoring tools for java application. In Proceedings of the 7th ACM/SPEC International Conference on Performance Engineering, 2016.
[5]
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 Proceedings of the Annual ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications, pages 169--190, 2006.
[6]
J. Dietrich, N. Hollingum, and B. Scholz. Giga-scale exhaustive points-to analysis for java in under a minute. In Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2015, pages 535--551, New York, NY, USA, 2015.
[7]
B. Hardekopf and C. Lin. The ant and the grasshopper: Fast and accurate pointer analysis for millions of lines of code. In Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '07, pages 290--299, New York, NY, USA, 2007.
[8]
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 Proceedings of the 2002 ACM SIGMETRICS International Conference on Measurement and Modeling of Computer Systems, SIGMETRICS '02, pages 140--151, New York, NY, USA, 2002.
[9]
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.
[10]
M. Hind. Pointer analysis: Haven't we solved this problem yet? In Proceedings of the 2001 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, PASTE '01, pages 54--61, New York, NY, USA, 2001.
[11]
T. Janjusic and K. Kavi. Gleipnir: A memory profiling and tracing tool. SIGARCH Comput. Archit. News, 41(4):8--12, Dec. 2013.
[12]
T. Janjusic, K. Kavi, and B. Potter. International conference on computational science iccs 2011 gleipnir: A memory analysis tool. Procedia Computer Science, 4:2058--2067, 2011.
[13]
M. Jump and K. S. McKinley. Cork: Dynamic memory leak detection for garbage-collected languages. In Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '07, pages 31--38, New York, NY, USA, 2007.
[14]
M. Jump and K. S. McKinley. Dynamic shape analysis via degree metrics. In Proceedings of the 2009 International Symposium on Memory Management, ISMM '09, pages 119--128, New York, NY, USA, 2009.
[15]
P. Lengauer, V. Bitto, and H. Mössenböck. Accurate and efficient object tracing for java applications. In Proceedings of the 6th ACM/SPEC International Conference on Performance Engineering, ICPE '15, pages 51--62, 2015.
[16]
H. Lieberman and C. Hewitt. A Real-time Garbage Collector Based on the Lifetimes of Objects. Commun. ACM, 26(6):419--429, 1983.
[17]
M. Méndez-Lojo, A. Mathew, and K. Pingali. Parallel inclusion-based points-to analysis. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA '10, pages 428--443, New York, NY, USA, 2010.
[18]
D. J. Pearce, P. H. J. Kelly, and C. Hankin. Efficient field-sensitive pointer analysis for c. In Proceedings of the 5th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, PASTE '04, pages 37--42, New York, NY, USA, 2004.
[19]
T. Printezis and R. Jones. Gcspy: An adaptable heap visualisation framework. In Proceedings of the 17th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, pages 343--358, 2002.
[20]
N. P. Ricci, S. Z. Guyer, and J. E. B. Moss. Elephant tracks: Portable production of complete and precise gc traces. In Proceedings of the 2013 International Symposium on Memory Management, pages 109--118, 2013.
[21]
A. Rountev, A. Milanova, and B. G. Ryder. Points-to analysis for java using annotated constraints. In Proceedings of the 16th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, OOPSLA '01, pages 43--55, New York, NY, USA, 2001.
[22]
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 Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA '11, pages 657--676, 2011.
[23]
M. Sridharan, D. Gopan, L. Shan, and R. Bodík. Demand-driven points-to analysis for java. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, OOPSLA '05, pages 59--76, New York, NY, USA, 2005.
[24]
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.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
PPPJ '16: Proceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools
August 2016
186 pages
ISBN:9781450341356
DOI:10.1145/2972206
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: 29 August 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Event Tracing
  2. Garbage Collection
  3. Java
  4. Pointer Tracing

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

PPPJ '16
PPPJ '16: Virtual Machines, Languages, and Tools
August 29 - September 2, 2016
Lugano, Switzerland

Acceptance Rates

PPPJ '16 Paper Acceptance Rate 14 of 31 submissions, 45%;
Overall Acceptance Rate 29 of 58 submissions, 50%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all

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