Что такое segmented stack vs contiguous stack?

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

Segmented stack — старый подход Go (до 1.3): стек состоит из связанных сегментов, при переполнении аллоцируется новый сегмент. Проблема — hot split: если функция на границе сегмента вызывается в цикле, стек постоянно растёт и сжимается. Contiguous stack решил это: при нехватке места выделяется новый непрерывный кусок памяти в 2 раза больше, старый стек копируется целиком, указатели обновляются. Дороже одна операция, зато нет hot split и лучше cache locality.

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

Что такое bulkhead паттерн?