LeakChaser

Programmer Liveness Abstraction
DOI: 10.1145/1993316.1993530 Publication Date: 2012-10-15T19:22:23Z
ABSTRACT
In large programs written in managed languages such as Java and C#, holding unnecessary references often results memory leaks bloat, degrading significantly their run-time performance scalability. Despite the existence of many leak detectors for languages, these target low-level objects; a result, reports contain false warnings lack sufficient semantic information to help diagnose problems. This paper introduces specification-based technique called LeakChaser that can not only capture precisely leading leaks, but also explain, with high-level semantics, why become unnecessary. At heart is three-tier approach uses varying levels abstraction assist programmers different skill code familiarity find leaks. highest tier approach, programmer needs specify boundaries coarse-grained activities, referred transactions. The tool automatically infers liveness properties transactions, by monitoring execution, order references. Diagnosis at this be performed any after inspecting APIs basic modules program, without understanding detailed implementation APIs. middle tier, introduce application-specific specifying lowest checker does rely on higher-level information, rather allows assert lifetime relationships pairs objects. task could skillful who have clear data structures algorithms program. We implemented Jikes RVM used it us several real-world incurs reasonable overhead debugging tuning. Our case studies indicate powerful guiding root causes leaks---even someone had studied leaking program quickly cause using LeakChaser's iterative process checks information.
SUPPLEMENTAL MATERIAL
Coming soon ....
REFERENCES (40)
CITATIONS (13)
EXTERNAL LINKS
PlumX Metrics
RECOMMENDATIONS
FAIR ASSESSMENT
Coming soon ....
JUPYTER LAB
Coming soon ....