Post Thumbnail

Автор продолжает цикл статей про рантайм Go. Теперь на очереде разбор аллокаторов.

Аллокатор, по сути, компонента runtime, который эффективно управляет выделением и освобождением памяти в куче. Вместо того чтобы каждый раз обращаться к операционной системе через медленные системные вызовы, runtime заранее запрашивает у ОС крупные блоки памяти, которые затем делятся на страницы по 8 КБ. Для удовлетворения запросов программы страницы группируются в спаны, каждый из которых предназначен для объектов строго одного размера. Для решения проблемы конкурентного доступа "тысяч горутин" используется трехуровневая иерархия: быстрый и неблокирующий mcache на каждом процессоре, централизованное хранилище спанов mcentral для каждого класса с короткими блокировками и глобальный mheap, управляющий страницами.

Подробнее в статье

Похожее

Post Thumbnail

eBPF и XDP

Еще одна неплохая статья по eBPF Аббревиатура eBPF расшифровывается как exten...

Post Thumbnail

Sssssh

Автор запилил многопользовательскую "Змейку", в которую можно играть прямо в тер...

Post Thumbnail

Капасити

В статье объясняется, как работают подсказки ёмкости (capacity hints) в Go для с...