Какая стадия выполняется в Benchmark после сборки кода

«Какая стадия выполняется в Benchmark после сборки кода» — вопрос из категории Тестирование, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Benchmark в Go выполняется после компиляции кода. В этот момент:

  1. Код уже скомпилирован в бинарный файл
  2. Запускается N итераций тестируемой функции
  3. Измеряется время выполнения и выделение памяти
  4. Результаты агрегируются и выводятся

Пример бенчмарка:

func BenchmarkSum(b *testing.B) {
    for i := 0; i < b.N; i++ {
        Sum(1, 2)
    }
}

Ключевые моменты:

  • b.N автоматически подбирает количество итераций
  • Измерения проводятся на скомпилированном коде
  • Исключается влияние компиляции на результаты