Cross-Component Garbage Collection
summary
A generic algorithm called cross-component tracing extends V8’s tracer into Blink so the JavaScript heap can trace C++ DOM objects, requiring object and layout descriptors and an incremental Dijkstra barrier. Implemented in Chrome to break cycles between V8 → Blink, it ships enabled by default in Chrome 57. Benchmarks show latency improves on 6 pages, regresses on 2, and is unchanged on 8; memory leaks reported in the wild stop, debug retaining paths become precise, and implementation effort proves nontrivial.
AI-written summary · about
chapters (7)
- 0:00Intro
- 1:56Background: Browsers
- 7:42V8 and Blink
- 13:01Cross-Component Tracing
- 16:41Experimental evaluation
- 19:52Takeaways
- 20:04Future work
related talks
21mLive and let die: Untangling the web of objects
21mMemory: Don't Forget to Take Out the Garbage
22mThe Hitchhiker's Guide to All Things Memory in JS
31mJavaScript memory management: Visual Guide
30mMemory Don't Forget To Take Out The Garbage
24mTrash Talk - Understanding Memory Management
26mThe Hitchhiker's Guide to All Things Memory in Javascript
28mAlice's Adventures in Memoryland
