Language 6 of 10 · Topic 0.8

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.