Бенчмарк показывает, что новая сериализация в 20 раз медленнее, хотя это не так
func BenchmarkEncodeOrder(b *testing.B) {
for i := 0; i < b.N; i++ {
order := loadOrderFixture("testdata/big_order.json") // читает и разбирает файл
EncodeOrder(order)
}
}
По бенчмарку новая сериализация заметно хуже старой, но профилирование в проде этого не подтверждает. Что искажает результат?
- Подготовка данных внутри цикла измеряется вместе с кодом
- b.N слишком мало для точного замера
- Бенчмарки нельзя запускать на данных из файлов
- Нужно запускать бенчмарк с -race
