Memory ballast - хак, применявшийся до Go 1.19. Идея: аллоцировать большой []byte и держать на него ссылку. GC считает его "живым" и реже запускает цикл сборки.
func main() {
// Ballast: GC думает, что живой памяти ~1 GiB
// и запускается реже (при GOGC=100 - при ~2 GiB)
ballast := make([]byte, 1<<30) // 1 GiB
_ = ballast // держим ссылку
// ... основная логика
}
Проблемы ballast: занимает виртуальную память, неточен, неочевиден для новых разработчиков.
GOMEMLIMIT (Go 1.19+) полностью заменил этот паттерн: он напрямую сообщает GC лимит памяти без необходимости аллоцировать мертвые данные.