Бесплатные материалы

Полное руководство про GC

ИСТОЧНИК:
В видео мы разберем устройство сборщика мусора (GC) в Go от «А» до «Я» — от классических алгоритмов до нового экспериментального GC в версии 1.26, который уже активно внедряет Google.

В этом уроке:

  • Основы и мотивация: зачем нужен GC, какие боли он снимает (Dangling pointers, Double free) и сколько мы на самом деле платим ресурсами за автоматическое управление памятью.
  • Подходы к сборке мусора: разница между подсчетом ссылок (Reference Counting) и трейсингом (Tracing), плюсы и минусы каждого метода.
  • Алгоритм Go под капотом: детальный разбор Concurrent Mark-and-Sweep, стадии Stop the World и как рантайм Go останавливает тысячи горутин для разметки объектов.
  • Управление памятью: что такое арены, страницы по 8 Кб и классы объектов, и как Go заранее запрашивает память у ОС для ускорения аллокаций.
  • Настройка и оптимизация: учимся использовать переменные GOGC и GOMEMLIMIT, разбираем кейсы применения sync.Pool для снижения нагрузки на GC.
  • Новинки Go 1.26: почему новый сборщик мусора быстрее, как работает последовательное сканирование страниц вместо прыжков по памяти и как используются векторные инструкции (AVX-512) для ускорения разметки.

В итоге у тебя будет полное руководство по работе GC: ты поймешь, как писать код, который «дружит» с памятью и кэшем процессора, и научишься диагностировать проблемы производительности с помощью трейсинг-профилировщика

Дополнительные материалы к видео

Исходный код
https://github.com/IgorWalther/videos/tree/master/0014_gc
Видео про операционные системы
https://t.me/igoroutine/89?comment=360
Исследование про GC: Quantifying the Performance of Garbage Collection vs. Explicit Memory Management
https://people.cs.umass.edu/~emery/pubs/gcvsmalloc.pdf
Видео про базу concurrency
https://t.me/igoroutine/89?comment=417
Видео про виртуальную память
https://t.me/igoroutine/89?comment=295
Видео про профилирование
https://t.me/igoroutine/23
Видео про продвинутые дженерики
https://t.me/igoroutine/89?comment=321
Dijkstra Insert Write Barrier and Yuasa Delete Write Barrier
https://www.dingyuqi.com/en/article/go-garbage-collection/#tri-color-mark-%E2%80%8B%E2%80%8Bsweep
Видео про SIMD
https://t.me/igoroutine/72
Продвинутый Go Computer Science