Ответ
По умолчанию размер стека горутины начинается с 2 КБ (на 64-битных системах) и может динамически расти до 1 ГБ (зависит от версии Go и ОС).
Если стек превышает лимит, происходит паника: stack overflow. Размер можно изменить через runtime/debug:
import "runtime/debug"
func main() {
debug.SetMaxStack(4 * 1024 * 1024) // 4 MB
}
Важно:
- Слишком маленький стек вызовет частые аллокации, слишком большой — расход памяти.
- В большинстве случаев дефолтных значений хватает.