Что такое benchmark и как его писать?

Middle
1.1k просмотров
AFK Offer AI

Benchmark в Go — это функция вида func BenchmarkXxx(b *testing.B), которая запускает код b.N раз и замеряет среднее время выполнения. Запускаешь через go test -bench=. -benchmem. Go сам подбирает b.N, чтобы результат был статистически значимым. В теле пишешь цикл for i := 0; i < b.N; i++ и внутри — то, что хочешь замерить. Флаг -benchmem покажет аллокации. Это лучший способ объективно сравнить две реализации одной функции, вместо гаданий "что быстрее".

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

Как работает go vet?