L33 — Memory Model, Escape Analysis & GC
Ba module tương tác để "chạm" vào cơ chế memory của Go: dự đoán escape của code snippet,
xem GC tri-color mark từng bước, và tune GOGC để thấy trade-off latency vs throughput.
Standalone — mở file:// là chạy được.
Module 1 — Escape analysis playground
Chọn 1 trong 8 snippet bên dưới, dự đoán xem biến chính trên stack hay
heap, rồi reveal đáp án + output thật của go build -gcflags="-m".
Module 2 — Tri-color Mark & Sweep
12 object node + 1 root. Bấm Step để chạy mark phase từng bước theo BFS từ root. Mỗi bước: pop 1 grey object, push các neighbour reachable thành grey, mark object đó black. Cuối cùng: mọi node còn white = garbage.
Module 3 — GOGC Tuner
Kéo slider GOGC từ 50 → 400. Chart mô phỏng heap grow theo thời gian: mỗi lần đạt
heap_live × (1 + GOGC/100) thì GC chạy, drop heap về live.
Quan sát trade-off: GOGC thấp = nhiều GC, pause/lần ngắn, peak heap thấp; GOGC cao =
ít GC, pause dài, peak heap cao.