Nội dung
Danh sách bài học
- 01~10 phút
Module 4 — Quản lý bộ nhớ ngôn ngữ bậc cao: tổng quan
Ai giải phóng bộ nhớ bạn cấp phát — bạn hay runtime. Module so sánh cấp phát thủ công với GC, ref-counting vs tracing, và vì sao vẫn rò bộ nhớ dù có GC.
- 02~18 phút
Cấp phát thủ công vs garbage collection — ai dọn rác
malloc/free đặt trách nhiệm lên lập trình viên; GC tự thu qua reachability. So sánh an toàn, chi phí, tradeoff, và các bug điển hình của mỗi phía.
- 03~18 phút
Ref-counting vs tracing GC — hai cách tìm rác
Ref-counting giải phóng tức thì nhưng bỏ sót chu trình; tracing GC bắt được mọi rác nhưng gây stop-the-world pause. Mark-and-sweep và generational GC.
- 04~16 phút
Vì sao vẫn rò bộ nhớ dù có GC — logical leak
GC chỉ thu object không còn ai giữ tham chiếu. Object vẫn reachable nhưng không bao giờ dùng nữa — logical leak — là thứ GC không cứu được.
- 05~25 phút
Mini-challenge — tái cấu trúc AoS sang SoA để giảm cache miss
Capstone khoá Bộ nhớ: refactor mảng Particle (AoS) sang struct of arrays (SoA), đo thời gian trước-sau bằng nanoTime, thảo luận kết quả.
- 06~12 phút
Module 4 — Tổng kết & cheat sheet
Recap quản lý bộ nhớ ngôn ngữ bậc cao: manual vs GC, ref-counting vs tracing, logical leak, AoS→SoA. Cheat sheet, glossary, pitfall tổng hợp.