Tolerating Memory Leaks

被引:21
作者
Bond, Michael D. [1 ]
McKinley, Kathryn S. [1 ]
机构
[1] Univ Texas Austin, Dept Comp Sci, Austin, TX 78712 USA
关键词
Reliability; Performance; Experimentation;
D O I
10.1145/1449955.1449774
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Type safety and garbage collection in managed languages eliminate memory errors such as dangling pointers, double frees, and leaks of unreachable objects. Unfortunately, a program still leaks memory if it maintains references to objects it will never use again. Leaked objects decrease program locality and increase garbage collection frequency and workload. A growing leak will eventually exhaust memory and crash the program. This paper introduces a leak tolerance approach called Melt that safely eliminates performance degradations and crashes due to leaks of dead but reachable objects in managed languages, given sufficient disk space to hold leaking objects. Melt (1) identifies stale objects that the program is not accessing; (2) segregates in-use and stale objects by storing stale objects to disk; and (3) preserves safety by activating stale objects if the program subsequently accesses them. We design and build a prototype implementation of Melt in a Java VM and show it adds overhead low enough for production systems. Whereas existing VMs grind to a halt and then crash on programs with leaks, Melt keeps many of these programs running much longer without significantly degrading performance. Melt provides users the illusion of a fixed leak and gives developers more time to fix leaky programs.
引用
收藏
页码:109 / 125
页数:17
相关论文
共 60 条
[1]   The Jalapeno virtual machine [J].
Alpern, B ;
Attanasio, CR ;
Barton, JJ ;
Burke, MG ;
Cheng, P ;
Choi, JD ;
Cocchi, A ;
Fink, SJ ;
Grove, D ;
Hind, M ;
Hummel, SF ;
Lieber, D ;
Litvinov, V ;
Mergen, MF ;
Ngo, T ;
Russell, JR ;
Sarkar, V ;
Serrano, MJ ;
Shepherd, JC ;
Smith, SE ;
Sreedhar, VC ;
Srinivasan, H ;
Whaley, J .
IBM SYSTEMS JOURNAL, 2000, 39 (01) :211-238
[2]  
ARNOLD M, 2000, ACM C OBJ OR PROGR S, P47
[3]  
Atkinson M. P., 1996, SIGMOD Record, V25, P68, DOI 10.1145/245882.245905
[4]  
BACON DF, 2003, ACM S PRINC PROGR LA, P285
[5]  
BERGER ED, 2006, ACM C PROGR LANG DES, P158
[6]   Oil and water? High performance garbage collection in Java']Java with MMTk [J].
Blackburn, SM ;
Cheng, P ;
McKinley, KS .
ICSE 2004: 26TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2004, :137-146
[7]  
BLACKBURN SM, 2006, ACM C OBJ OR PROGR S, P169
[8]  
BLACKBURN SM, 2004, ACM INT S MEM MAN, P143
[9]  
BOND MD, 2007, TR0764 U TEX AUST
[10]   Bell: Bit-encoding online memory leak detection [J].
Bond, Michael D. ;
McKinley, Kathryn S. .
ACM SIGPLAN NOTICES, 2006, 41 (11) :61-72