2000
DOI: 10.1007/3-540-46423-9_4
|View full text |Cite
|
Sign up to set email alerts
|

Automatic Removal of Array Memory Leaks in Java

Abstract: Current garbage collection (GC) techniques do not (and in general cannot) collect all the garbage that a program produces. This may lead to a performance slowdown and to programs running out of memory space. In this paper, we present a practical algorithm for statically detecting memory leaks occurring in arrays of objects in a garbage collected environment. No previous algorithm exists. The algorithm is conservative, i.e., it never detects a leak on a piece of memory that is subsequently used by the program, … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

2
63
0

Year Published

2005
2005
2014
2014

Publication Types

Select...
4
3

Relationship

0
7

Authors

Journals

citations
Cited by 43 publications
(65 citation statements)
references
References 12 publications
2
63
0
Order By: Relevance
“…TVPI polyhedra form a so-called weakly relational domain and thereby constitute a proper subclass of general polyhedra. Other sub-classes include Difference Bounds Matrices (DBMs for short) [5,61,46], the Octagon domain [47] and the Octahedron domain [17]. The abstract domain of DBMs represents inequalities of the form x i −x j ≤ c ij , x i , x j ∈ X by storing c ij in an n×n matrix such that the entry at position i, j is c ij .…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…TVPI polyhedra form a so-called weakly relational domain and thereby constitute a proper subclass of general polyhedra. Other sub-classes include Difference Bounds Matrices (DBMs for short) [5,61,46], the Octagon domain [47] and the Octahedron domain [17]. The abstract domain of DBMs represents inequalities of the form x i −x j ≤ c ij , x i , x j ∈ X by storing c ij in an n×n matrix such that the entry at position i, j is c ij .…”
Section: Related Workmentioning
confidence: 99%
“…More generally, TVPI inequalities with coefficients -1,0 or 1 were proposed for constraint logic programming [34,38] and were subsequently generalised to the Octagon abstract domain [47] for the purpose of verifying C code. Elsewhere, Octagons have been used to detect memory leaks in Java programs [61]. Two variable inequalities were relaxed to arbitrary coefficients in the context of satisfiability testing in theorem proving [50,63].…”
Section: Related Workmentioning
confidence: 99%
“…Compile-time static analysis can find double free and missing frees [20] and is complimentary to our work. Offline diagnostic tools accurately detect leaks using a combination of heap differencing [15,16,30] and fined-grained allocation/usage tracking [13,19,35,36,40,41]. These approaches are expensive and often require multiple executions and/or separate analysis to generate complex reports full of low-level details about individual objects.…”
Section: Related Workmentioning
confidence: 99%
“…Previous approaches for finding leaks use heap diagnosis tools that rely on a combination of heap differencing [15,16,30] and allocation and/or fine-grain object tracking [10,13,14,19,29,35,36,40,41]. These techniques can degrade performance by a factor of two or more, incur substantial memory overheads, rely on multiple executions, and/or offload work to a separate processor.…”
Section: Introductionmentioning
confidence: 99%
“…If an application leaks memory, it first slows down the system in which it is running and eventually causes the system to run out of memory. Many memory-leak bugs have been reported (e.g., bug #4177795 in the Java Developer's Connection [13]) and experiments have shown that on average 39% of space could be saved by freeing reachable but unneeded objects [24,22].…”
Section: Introductionmentioning
confidence: 99%