Как работает goroutine stack growth?

Middle
130 просмотров
AFK Offer AI

Горутина стартует с маленьким стеком (2-8 KB). При вызове функции проверяется stackguard — хватает ли места. Если нет, runtime выделяет новый стек в 2 раза больше, копирует старый, обновляет все указатели на стек. Это copyable stacks. Стек может и уменьшаться при GC если используется меньше четверти. Поэтому адреса на стеке нестабильны.

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

Что такое strings.NewReplacer?