~/talk

Evolving ZGC's Pointer Color Palette

Talkat JVM Language Summit 2025 · 2025-08-04..08-06· [java]
github:fisk
slides:none on file

ZGC evolves from three persistent color bits plus one transient bit to a generational scheme using 12 transient bits, replacing multi‑map mappings with colorless roots to eliminate the threefold RSS inflation. Load and store barriers perform cheap color removal or recreation, using shifts and four‑instruction store fast paths; forwarding addresses live in an off‑heap table. Future work adds a persistent private/shared bit implemented via heap partitions, aiming for ~16 transient bits plus one persistent bit for thread‑local GC.

AI-written summary · about

  1. 0:00Colored pointers in ZGC
  2. 1:5164-bit pointer anatomy
  3. 4:20Colored pointers and types
  4. 9:15Non-generational ZGC colors
  5. 13:09Instance reclamation in ZGC
  6. 16:43ZGC avoids compressed oops
  7. 18:28Finalizer colors in ZGC
  8. 19:32Generational ZGC challenges
  9. 21:19RSS inflation with colorless roots
  10. 22:25Generational ZGC’s 12 transient bits
  11. 26:18Transient vs persistent colors
  12. 27:45Barriers in generational ZGC
  13. 30:12Color bit manipulation in barriers
  14. 32:46Generational ZGC benefits
  15. 33:07Private versus shared objects
  16. 36:17NUMA-aware heap partitions
  17. 38:05ZGC pointer color evolution summary
  18. 38:52Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.