DocumentCode
3696678
Title
LeakTracer: Tracing leaks along the way
Author
Hengyang Yu;Xiaohua Shi;Wei Feng
Author_Institution
School of Computer Science and Engineering, Beihang University, Beijing, China
fYear
2015
Firstpage
181
Lastpage
190
Abstract
Unnecessary references in managed languages, such as Java and C#, often cause memory leaks without any immediate symptoms. These leaks become manifest when the program has been running for a long time (usually several hours, days or even weeks). Garbage collectors cannot handle this situation, since it only reclaims objects that have no external references to them. Consequently, when the number of leaked objects becomes large, garbage collection frequency increases and program performance degrades. Ultimately, the program will crash. This paper introduces LeakTracer, a tool that helps diagnose memory leaks in managed languages. The core of LeakTracer is the use of a novel leak predictor, which not only considers object size and staleness as a whole to predict leaked objects, but also carefully adjusts their contributions to the leak possibility of an object, according to the careful observation of activities of common objects during their lifetimes. We have implemented LeakTracer in two parts: (1) an online object events tracker in the Apache Harmony DRL virtual machine, and (2) an offline analyzer embedding our predictor. We have successfully used LeakTracer to find leaks in several real-world programs, and our case studies show that leak predictor can pinpoint leaked objects with high accuracy.
Keywords
"Resource management","Runtime","Containers","Arrays","Virtual machining","Accuracy","Object recognition"
Publisher
ieee
Conference_Titel
Source Code Analysis and Manipulation (SCAM), 2015 IEEE 15th International Working Conference on
Type
conf
DOI
10.1109/SCAM.2015.7335414
Filename
7335414
Link To Document