Pre-allocation — выделение памяти заранее: make([]T, 0, expectedLen) вместо var s []T. Без capacity слайс растёт динамически — каждое удвоение это новая аллокация и копирование. Для map тоже: make(map[K]V, size). Если знаешь примерный размер — всегда задавай capacity.