Download presentation
Presentation is loading. Please wait.
1
1 Reducing Generational Copy Reserve Overhead with Fallback Compaction Phil McGachey and Antony L. Hosking June 2006
2
2 Overview Background Algorithm Design Implementation Details Experimental Results
3
3 Generational Collectors Generational Hypotheses: –Most objects die young –Older objects less likely to die Generational collectors exploit this –Allocate to a nursery space –Move older objects to a separate mature space Most collections don’t look at old objects
4
4 Appel’s Collector NurseryCopy ReserveMatureNurseryCopy Reserve
5
5 Appel’s Collector MatureCopy ReserveNurseryMatureCopy ReserveNursery
6
6 Copy Reserve Copying collectors require copy reserve Must be large enough for the worst case Most objects do not survive a collection Optimize the common case
7
7 Common Case MatureCopy ReserveNurseryMatureCopy ReserveNursery
8
8 Worst Case MatureCopy ReserveNurseryMatureCopy ReserveNursery
9
9 Design Summary Based on Appel’s collector Reduce the copy reserve size –The majority of collections work as normal Use compaction in the worst case More efficient use of space –Fewer collections required
10
10 Implementation Details Jikes RVM and MMTk Modified version of GenCopy collector –Slight differences from Appel’s design
11
11 Block Copying MMTk designates space by virtual address Must copy objects between spaces No efficient block copy mechanism Use mmap() to move pages –Map pages from named backing store –Use offset to refer to block –Unmap and remap as required
12
12 Compacting Collector Difficulty in sweeping immortal spaces –Unreachable objects still in place –Need to modify object scanning Cannot allocate memory –Heap is already full –Makes forwarding pointers difficult to track Jonkers’ reference chaining algorithm
13
13 Metrics Vary copy reserve size and heap size Measure elapsed time for execution Count major and minor garbage collections
14
14 Methodology Use selected SPECjvm98 benchmarks Run 11 times –First run compiles with optimizing compiler –Measure remaining ten Experimental Platform: –Intel Pentium 4/2.26 GHz –512 Mb RAM –Mandrake Linux 9.2
15
15 Traditional Generational Copying Collector
16
16 _213_javac, 5% copy reserve
17
17 _213_javac, 10% copy reserve
18
18 _213_javac, 80% copy reserve
19
19 _213_javac, 30M heap
20
20 _213_javac, 80M heap
21
21 Summary New collector with reduced copy reserve Uses compaction to handle worst case Several interesting implementation details Copy reserve size selection important Performance comparable to or better than other collectors
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.