1 / 27

Fast Conservative Garbage Collection

Fast Conservative Garbage Collection. Rifat Shahriyar Stephen M. Blackburn Australian National University. Kathryn S. M cKinley Microsoft Research. GC is Ubiquitous. GC implementations Exact Conservative High performance systems use exact GC Conservative GC is popular. heap. heap.

Download Presentation

Fast Conservative Garbage Collection

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. Fast Conservative Garbage Collection Rifat Shahriyar Stephen M. Blackburn Australian National University Kathryn S. McKinley Microsoft Research

  2. GC is Ubiquitous • GC implementations Exact Conservative • High performance systems use exact GC • Conservative GC is popular heap heap roots roots heap exact conservative roots

  3. Performance 16% slowdown a show-stopper in many situations

  4. Root Conservative GC int heap roots

  5. Ambiguous References • May be pointers • Retain referents, transitively • Excess retention • May be values • Cannot change values • Pin referents • May corrupt heap • Validate before updating per-object metadata

  6. Why Conservative GC Advantages • Disentangles GC from compiler • Avoids challenging engineering of stack maps • Enables more compiler optimizations Disadvantages • Must handle ambiguous references • Performance Our goal is high performance conservative GC for managed languages

  7. High Performance Exact Garbage Collectors

  8. Immix[Blackburn & McKinley 2008] object mark line mark recyclable lines block • Contiguous allocation into regions • 256B lines and 32KB blocks • Objects span lines but not blocks • Simple mark phase • Mark objects and containing regions • Free unmarked regions • Recycled allocation and defragmentation 0 line line line line

  9. RC Immix [Shahriyar et al. 2013] • Combines RC and Immix • Object local collection • Great mutator locality • Exploit Immix’s opportunistic copy • New objects can be copied by first GC • Old objects can be copied by backup GC • Copying with RC to eliminate fragmentation 1 0 1 3 2 1 0 2 2 1 0 3 0 1 2

  10. Conservative Garbage Collectors

  11. Non-Moving Free list • Designed for fully conservative settings • Problems • Poor performance • Overly conservative design for many settings heap roots

  12. Mostly-Copying Semi Space • a.k.a. Bartlett-style,with many variants • Problems • Semi-space suffers from huge collection cost • Poor performance heap roots

  13. Cost of Conservatismaveraged over 20 Java benchmarks Roots Excess retention Pinning The direct cost of conservatism is very low

  14. Heap Organization is Key

  15. Outline • Real source of performance overhead is not conservatism but heap organization • Design and implementation of • Conservative Immix collectors • Conservative reference counting • Evaluation

  16. Design

  17. Filtering • Object map filters ambiguous references • Bitmap records locations of all live objects • Allocator sets bit encoding object start address • Collector clears bit for dead objects heap roots

  18. Cost of Filtering Heap organization trumps object map overhead (2.7%)

  19. Pinning • Immix line pinning, opportunistic copying • Pin referents of ambiguous references • Logically pinned lines cannot be reused • Move other objects as space permits heap roots

  20. Results

  21. Methodology • 20 benchmarks • DaCapo, SPECjvm98 and pjbb2005 • 20 invocations for each benchmark • Jikes RVM and MMTk • All garbage collectors are parallel • Intel Core i7 4770, 8GB • Ubuntu 12.04.3 LTS

  22. Cost of Conservatismnormalized to exact cons cons cons cons Low performance penalty for conservative collectors

  23. Total Time cons RC Immixcons matches Gen Immix and RC Immix

  24. Total Time v Heap Size cons RC Immixcons matches Gen Immix and RC Immix

  25. Wider Applicability

  26. Conservatism and PinningAmenability of existing systems to conservative RC Immix • Quantifyambiguous references in target applications • Conservative RC Immix tolerates 8x pinning increase with only 3.4% overhead • Modify heap organization to use lines and blocks • Implementfull-heap tracing Immix collector (5% improvement) • Depends on code quality

  27. Summary • Conservative GC • Dominated by BDW and MCC • Significant overheads • Heap org. key to performance • New designs • Low overhead object map • Immix line based pinning • Conservative RC Immix • Matches fastest production Questions? • Available at: https://jira.codehaus.org/browse/RVM-1085

More Related