V8 Memory Management: Call Stack, Heap & Generational GC (Scavenger)
1Concept
V8 manages memory via Call Stack (primitives and execution contexts) and Heap (objects, arrays, closures). V8 GC uses a Scavenger (Semi-space young generation copying) and Mark-Sweep-Compact for old generation.
2Architecture Diagram
+-----------------------------------------------------------+ | V8 ENGINE | | [ Call Stack ] ──► [ Young Generation (Semi-Space Copy) ] | | [ Old Generation (Mark-Sweep-Compact) ]| +-----------------------------------------------------------+
3Code Example
Stage 0 Language Foundations
let user = { id: 101, name: "Alex" }; // Allocated on V8 Heap
user = null; // Object eligible for V8 Scavenger / Mark-Sweep GC
console.log("Memory dereferenced.");4Expected Output
Memory dereferenced.
5Key Takeaways
- ✓Detached DOM trees, uncleared setIntervals, and global variables cause JS memory leaks.
- ✓WeakMap and WeakSet allow garbage collection of unreferenced keys.
- ✓Profile memory in Chrome DevTools using Heap Snapshots.