1 / 21

Reducing Generational Copy Reserve Overhead with Fallback Compaction

Reducing Generational Copy Reserve Overhead with Fallback Compaction. Phil McGachey and Antony L. Hosking June 2006. Overview. Background Algorithm Design Implementation Details Experimental Results. Generational Collectors. Generational Hypotheses: Most objects die young

arnav
Download Presentation

Reducing Generational Copy Reserve Overhead with Fallback Compaction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Reducing Generational Copy Reserve Overhead with Fallback Compaction Phil McGachey and Antony L. Hosking June 2006

  2. Overview • Background • Algorithm Design • Implementation Details • Experimental Results

  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. Appel’s Collector Mature Copy Reserve Copy Reserve Nursery Nursery

  5. Mature Copy Reserve Nursery Appel’s Collector Mature Copy Reserve Nursery

  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. Mature Copy Reserve Nursery Common Case Mature Copy Reserve Nursery

  8. Mature Copy Reserve Nursery Worst Case Mature Copy Reserve Nursery

  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. Implementation Details • Jikes RVM and MMTk • Modified version of GenCopy collector • Slight differences from Appel’s design

  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. 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. Metrics • Vary copy reserve size and heap size • Measure elapsed time for execution • Count major and minor garbage collections

  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. Traditional Generational Copying Collector

  16. _213_javac, 5% copy reserve

  17. _213_javac, 10% copy reserve

  18. _213_javac, 80% copy reserve

  19. _213_javac, 30M heap

  20. _213_javac, 80M heap

  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

More Related