Основные направления оптимизации Go-приложений:
Память: переиспользуй объекты через sync.Pool, предаллоцируй слайсы (make([]T, 0, n)), избегай лишних аллокаций (escape analysis: go build -gcflags="-m").
CPU: профилируй через pprof, избегай рефлексии, используй буферизованный I/O (bufio), минимизируй аллокации (меньше работы для GC).
Конкурентность: буферизованные каналы, worker pools, sync.RWMutex вместо Mutex для read-heavy нагрузки, атомики для простых счётчиков.
БД: индексы, prepared statements, batch-операции, connection pooling.
Главное правило: сначала профилируй (pprof, benchstat), потом оптимизируй. Не угадывай bottleneck.