• 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