Практика · РЕДАКЦИОННЫЙ МАТЕРИАЛ
Как измерять производительность
Повторяемый эксперимент вместо одного удачного запуска.
Определите вопрос
Измерение должно отвечать на конкретный вопрос: время обработки запроса, пропускная способность или задержка операции. Зафиксируйте вход и ожидаемый результат. Ускорение неверного алгоритма не имеет смысла. Для сервиса отделяйте время CPU от ожидания сети, диска и очереди.
Сохраните условия
Запишите модель CPU, ОС, компилятор, параметры оптимизации и размер данных. Фоновая нагрузка, прогрев, частота и температура могут менять результат. Делайте несколько повторов, показывайте разброс и медиану; не выбирайте только лучший запуск. При сравнении чередуйте варианты, чтобы уменьшить влияние постепенного нагрева.
Linux: начальный набор
Начните с lscpu для топологии и /usr/bin/time для общего времени процесса. Если perf доступен, perf stat -- ./program помогает собрать счётчики. Доступность событий зависит от оборудования, ядра и прав. Отсутствующее событие не равно нулю. Не меняйте глобальные ограничения perf без понимания последствий.
Проверьте гипотезу
Если подозреваете память, меняйте размер рабочего набора и порядок доступа. Если подозреваете синхронизацию, меняйте число работников. Сравнивайте одинаковые результаты программы и сохраняйте сырые измерения. Учебный микротест объясняет механизм, но итоговое решение проверяют на полной задаче.
Проверить по первоисточнику
Общий материал проверен по документации 26 октября 2026 года. Детали конкретного процессора уточняйте в его руководстве.