Immix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance

被引:54
作者
Blackburn, Stephen M. [1 ]
McKinley, Kathryn S. [2 ]
机构
[1] Australian Natl Univ, Canberra, ACT 0200, Australia
[2] Univ Texas Austin, Austin, TX 78712 USA
来源
PLDI'08: PROCEEDINGS OF THE 2008 SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN & IMPLEMENTATION | 2008年
关键词
Fragmentation; Free-List; Compact; Mark-Sweep; Semi-Space; Mark-Region; Immix; Sweep-To-Region; Sweep-To-Free-List;
D O I
10.1145/1375581.1375586
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Programmers are increasingly choosing managed languages for modem applications, which tend to allocate many short-to-medium lived small objects. The garbage collector therefore directly determines program performance by making a classic space-time trade-off that seeks to provide space efficiency, fast reclamation, and mutator performance. The three canonical tracing garbage collectors: semi-space, mark-sweep, and mark-compact each sacrifice one objective. This paper describes a collector family, called mark-region, and introduces opportunistic defragmentation, which mixes copying and marking in a single pass. Combining both, we implement immix, a novel high performance garbage collector that achieves all three performance objectives. The key insight is to allocate and reclaim memory in contiguous regions, at a coarse block grain when possible and otherwise in groups of finer grain lines. We show that immix outperforms existing canonical algorithms, improving total application performance by 7 to 25% on average across 20 benchmarks. As the mature space in a generational collector, immix matches or beats a highly tuned generational collector, e.g. it improves jbb2000 by 5%. These innovations and the identification of a new family of collectors open new opportunities for garbage collector design.
引用
收藏
页码:22 / +
页数:2
相关论文
共 37 条
[1]  
ABUAIADH D, 2004, ACM C OBJ OR PROGR S, P224
[2]  
ALPERN B, 2000, IBM SYSTEM J, V39
[3]  
ALPERN B, 2009, ACM C OBJ OR PROGR S
[4]   SIMPLE GENERATIONAL GARBAGE COLLECTION AND FAST ALLOCATION [J].
APPEL, AW .
SOFTWARE-PRACTICE & EXPERIENCE, 1989, 19 (02) :171-183
[5]  
ARNOLD M, 2000, ACM C OBJ OR PROGR S, P47
[6]  
ATTANASIO C, 2001, P WORKSH LANG COMP P
[7]  
BACON DF, 2003, ACM S PRINC PROGR LA, P285
[8]  
BACON DF, 2003, ACM SIGPLAN 2003 C L, P81
[9]   LIST PROCESSING IN REAL-TIME ON A SERIAL COMPUTER [J].
BAKER, HG .
COMMUNICATIONS OF THE ACM, 1978, 21 (04) :280-294
[10]   A parallel, incremental, mostly concurrent garbage collector for servers [J].
Barabash, K ;
Ben-Yitzhak, O ;
Goft, I ;
Kolodner, EK ;
Leikehman, V ;
Ossia, Y ;
Owshanko, A ;
Petrank, E .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2005, 27 (06) :1097-1146