Ответ
Benchmark в Go выполняется после компиляции кода. В этот момент:
- Код уже скомпилирован в бинарный файл
- Запускается N итераций тестируемой функции
- Измеряется время выполнения и выделение памяти
- Результаты агрегируются и выводятся
Пример бенчмарка:
func BenchmarkSum(b *testing.B) {
for i := 0; i < b.N; i++ {
Sum(1, 2)
}
}
Ключевые моменты:
- b.N автоматически подбирает количество итераций
- Измерения проводятся на скомпилированном коде
- Исключается влияние компиляции на результаты