Как оптимизировать аллокации?

Middle+
199 просмотров
AFK Offer AI

Сначала профилируй: go test -bench -benchmem или pprof alloc_space. Основные приёмы: pre-allocate слайсы (make([]T, 0, expectedCap)), sync.Pool для часто создаваемых объектов, strings.Builder вместо конкатенации, избегай boxing (interface{} для value types), передавай большие структуры по указателю. Escape analysis: go build -gcflags="-m" — показывает что утекает в heap. Не все аллокации плохи — оптимизируй только hot path. Premature optimization — корень всех зол.

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

Как работать с sorting в API?