Автор продолжает цикл статей про рантайм Go. Теперь на очереде разбор аллокаторов.
Аллокатор, по сути, компонента runtime, который эффективно управляет выделением и освобождением памяти в куче. Вместо того чтобы каждый раз обращаться к операционной системе через медленные системные вызовы, runtime заранее запрашивает у ОС крупные блоки памяти, которые затем делятся на страницы по 8 КБ. Для удовлетворения запросов программы страницы группируются в спаны, каждый из которых предназначен для объектов строго одного размера. Для решения проблемы конкурентного доступа "тысяч горутин" используется трехуровневая иерархия: быстрый и неблокирующий mcache на каждом процессоре, централизованное хранилище спанов mcentral для каждого класса с короткими блокировками и глобальный mheap, управляющий страницами.
Подробнее в статье
05.03.2026
Похожее
04.03.2026
eBPF и XDP
Еще одна неплохая статья по eBPF Аббревиатура eBPF расшифровывается как exten...
03.03.2026
Уменьшаем бинарник
Инженеры Datadog рассказали, как всего за полгода им удалось "похудеть". Они уме...
02.03.2026
Sssssh
Автор запилил многопользовательскую "Змейку", в которую можно играть прямо в тер...
27.02.2026
Капасити
В статье объясняется, как работают подсказки ёмкости (capacity hints) в Go для с...