Как работает аллокатор памяти в Go?

Senior
157 просмотров
AFK Offer AI

Аллокатор Go основан на TCMalloc. Каждый P (процессор) имеет свой локальный кеш (mcache), чтобы мелкие аллокации шли без блокировок. Если в mcache нет нужного размера, запрос идёт в mcentral (общий пул для конкретного размера), а потом в mheap (глобальная куча). Такая иерархия минимизирует contention.

Следующий вопрос

Как дебажить deadlock в production?