Mediumprofiling

Каковы основные инструменты профайлинга C++?

1Постановка

Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.

2Решение

Группы инструментов для профайлинга C++:

  • Sampling profilers — периодические стек-сэмплы: perf (Linux, низкий overhead), VTune (cache/branch анализ), Xcode Instruments, Very Sleepy (Windows);
  • Instrumenting profilers — инструментация при компиляции: gprof, Callgrind (valgrind);
  • Memory profilers — Valgrind/massif, HeapTrack, AddressSanitizer, LeakSanitizer;
  • Tracing — perfetto, Chrome tracing, LTTng;
  • CPU countersperf stat, VTune: cache misses, branch misprediction, IPC.
# Сэмпл-профайлинг под Linux
perf record ./app
perf report

Современный подход: ASan+UBSan для отладки, perf/VTune для production profiling, clang-tidy/PVS-Studio для статического анализа.

3Как отвечать

  • Сначала уточните условия и ограничения, покажите аналитическое мышление.
  • Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
  • Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡

На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.