V8’s Orinoco GC project details how young-generation (minor) garbage collection works inside the JavaScript engine powering Chrome and Node.js.
Key Takeaways
Orinoco is V8’s ongoing GC overhaul; young generation collection targets newly allocated, short-lived objects using a semi-space scavenger.
The generational hypothesis drives the design: most JS objects die young, so collecting them separately avoids scanning the full heap on every cycle.
Young gen is split into from-space and to-space; live objects are copied (evacuated) to to-space, dead objects are implicitly reclaimed by pointer bump reset.
Orinoco introduced parallel and concurrent techniques to shrink main-thread pause times during scavenges, a key source of jank in interactive apps.
Escaped objects are promoted to old generation, feeding into the major GC cycle where tracing costs more.