Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Checking Cleanness in Linked Lists
SAS '00 Proceedings of the 7th International Symposium on Static Analysis
Optimizing Java Bytecode Using the Soot Framework: Is It Feasible?
CC '00 Proceedings of the 9th International Conference on Compiler Construction
Automatic Removal of Array Memory Leaks in Java
CC '00 Proceedings of the 9th International Conference on Compiler Construction
A practical flow-sensitive and context-sensitive C and C++ memory leak detector
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Low-overhead memory leak detection using adaptive statistical profiling
ASPLOS XI Proceedings of the 11th international conference on Architectural support for programming languages and operating systems
Region-based shape analysis with tracked locations
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
HPCA '05 Proceedings of the 11th International Symposium on High-Performance Computer Architecture
Context- and path-sensitive memory leak detection
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Static detection of leaks in polymorphic containers
Proceedings of the 28th international conference on Software engineering
Bell: bit-encoding online memory leak detection
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
Cork: dynamic memory leak detection for garbage-collected languages
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Practical memory leak detection using guarded value-flow analysis
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Execution patterns in object-oriented visualization
COOTS'98 Proceedings of the 4th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 4
Blended analysis for performance understanding of framework-based applications
Proceedings of the 2007 international symposium on Software testing and analysis
The causes of bloat, the limits of health
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Object ownership profiling: a technique for finding and fixing memory leaks
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Precise memory leak detection for java software using container profiling
Proceedings of the 30th international conference on Software engineering
Jolt: lightweight dynamic analysis and removal of object churn
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Efficiently and precisely locating memory leaks and bloat
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Chameleon: adaptive selection of collections
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Go with the flow: profiling copies to find runtime bloat
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Detecting memory leaks in managed languages with Cork
Software—Practice & Experience
Four Trends Leading to Java Runtime Bloat
IEEE Software
Detecting inefficiently-used containers to avoid bloat
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Finding low-utility data structures
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
LEAKPOINT: pinpointing the causes of memory leaks
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Diagnosing memory leaks using graph mining on heap dumps
Proceedings of the 16th ACM SIGKDD international conference on Knowledge discovery and data mining
Performance analysis of idle programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the FSE/SDP workshop on Future of software engineering research
Tracking data structures for postmortem analysis (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
LeakChaser: helping programmers narrow down causes of memory leaks
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Memory leak analysis by contradiction
SAS'06 Proceedings of the 13th international conference on Static Analysis
The runtime structure of object ownership
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Modeling runtime behavior in framework-based applications
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Uncovering performance problems in Java applications with reference propagation profiling
Proceedings of the 34th International Conference on Software Engineering
Analyzing large-scale object-oriented software to find and remove runtime bloat
Analyzing large-scale object-oriented software to find and remove runtime bloat
Hi-index | 0.00 |
A memory leak in a Java program occurs when object references that are no longer needed are unnecessarily maintained. Such leaks are difficult to detect because static analysis typically cannot precisely identify these redundant references, and existing dynamic leak detection tools track and report fine-grained information about individual objects, producing results that are usually hard to interpret and lack precision. In this article we introduce a novel container-based heap-tracking technique, based on the fact that many memory leaks in Java programs occur due to incorrect uses of containers, leading to containers that keep references to unused data entries. The novelty of the described work is twofold: (1) instead of tracking arbitrary objects and finding leaks by analyzing references to unused objects, the technique tracks only containers and directly identifies the source of the leak, and (2) the technique computes a confidence value for each container based on a combination of its memory consumption and its elements' staleness (time since last retrieval), while previous approaches do not consider such combined metrics. Our experimental results show that the reports generated by the proposed technique can be very precise: for two bugs reported by Sun, a known bug in SPECjbb 2000, and an example bug from IBM developerWorks, the top containers in the reports include the containers that leak memory.