Вступить в клуб →
средняявопросСборка, тесты и профилирование

Профилирование Debug-сборки

Разработчик профилировал Debug-сборку (-O0 -g), увидел, что 40% времени уходит в маленькую функцию-геттер внутри std::vector, вручную развернул её вызовы в горячем цикле и отчитался об оптимизации. На Release-сборке замер не изменился вовсе.

Что было сделано неверно?

  • Ошибка в инструменте: `perf` не умеет корректно атрибутировать время внутри шаблонов стандартной библиотеки
  • Замер нужно делать на Release с оптимизациями и отладочными символами: профиль `-O0` не отражает реальную картину
  • Оптимизировать нужно было по счётчику вызовов, а не по доле времени: функция вызывается редко
  • Ошибка в выборе объекта оптимизации: пока не изменена асимптотика горячего цикла, любые правки внутри его тела бессмысленны

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела