ComputingComputer EngineeringComputer ScienceData StructuresOperating SystemsProgramming LanguagesData TypesData-flow AnalysisGarbage CollectionType CheckingType SystemsDynamic HeapsDynamic Type CheckingExecution Time AnalysisGarbage Collection OverheadHeap AnalysisMemory Leak DetectionMemory LeaksObjects
A memory leak in a garbage-collected program occurs when the program inadvertently maintains references to objects that it no longer needs. Memory leaks cause systematic heap growth, degrading performance and resulting in program crashes after perhaps days or weeks of execution. Prior approaches for detecting memory leaks rely on heap differencing or detailed object statistics which store state proportional to the number of objects in the heap. These overheads preclude their use on the same processor for deployed long-running applications.This paper introduces a dynamic heap-summarization technique based on type that accurately identifies leaks, is space efficient (adding less than 1% to the heap), and is time efficient (adding 2.3% on average to total execution time). We implement this approach in Cork which utilizes dynamic type information and garbage collection to summarize the live objects in a type points-from graph ( TPFG ) whose nodes (types) and edges (references between types) are annotated with volume. Cork compares TPFG s across multiple collections, identifies growing data structures, and computes a type slice for the user. Cork is accurate: it identifies systematic heap growth with no false positives in 4 of 15 benchmarks we tested. Cork's slice report enabled us (non-experts) to quickly eliminate growing data structures in SPECjbb2000 and Elipse, something their developers had not previously done. Cork is accurate, scalable, and efficient enough to consider using online.
17
Stephen M. Blackburn, Robin Garner, Chris Hoffmann et al. · 2006 · 1.6K citations · Full text
Adaptive optimization in the Jalapeno JVM
Matthew Arnold, Stephen J. Fink, David Grove et al. · ACM SIGPLAN Notices · 2011 · 334 citations
Bowen Alpern, C. R. Attanasio, Anthony Cocchi et al. · 1999 · 268 citations
Adaptive optimization in the Jalapeño JVM
Matthew Arnold, Stephen J. Fink, David Grove et al. · 2000 · 258 citations
Stephen M. Blackburn, Perry Cheng, Kathryn S. McKinley · 2004 · 248 citations