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

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

Go GC — concurrent, tri-color mark and sweep. Чем меньше объектов в heap — тем быстрее GC. Уменьшай аллокации: sync.Pool, pre-allocated буферы, stack allocation через escape analysis. GOGC (по умолчанию 100) — процент роста heap до следующего GC. GOGC=200 — реже GC, больше памяти. GOMEMLIMIT (Go 1.19+) — мягкий лимит памяти, GC старается не превышать. runtime.ReadMemStats для мониторинга. GODEBUG=gctrace=1 для дебага. Не оптимизируй GC пока он не bottleneck — обычно он не проблема.

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

Что такое mcache?