Можно ли поднять частоту дискретизации perf stat?

Я использую perf для профилирования, но количество отслеживаемых событий PMU превышает количество аппаратных счетчиков, поэтому срабатывает стратегия циклического мультиплексирования. Однако некоторые из моих тестовых примеров могут выполняться менее миллисекунды, а это означает, что если время выполнения меньше, чем обратная мультипликативная частота переключения по умолчанию (1000 Гц), некоторые события могут не быть профилированы.

Как увеличить частоту дискретизации perf stat, например perf record -F <freqency>, чтобы гарантировать, что все события будут записываться, даже если накладные расходы на измерения могут немного увеличиться?


person Kevin Dong    schedule 04.11.2017    source источник


Ответы (1)


Прежде всего, помните, что выборка отличается от подсчета.

perf record будет неизменно выполнять выборку всех событий, произошедших за время профилирования. Это означает, что он не будет учитывать все произошедшие события (конечно, это можно изменить!). Вы можете изменить частоту сбора образцов, чтобы увеличить количество собираемых образцов. Обычно это похоже на то, что для каждых 10 (или любого другого числа> 0) происходящих событий perf record будет записывать только 1 из них.

perf stat выполнит подсчет всех происходящих событий. Для каждого происходящего события perf stat будет считать его и постарается не пропустить ни одного, в отличие от выборки. Конечно, количество подсчитанных событий может быть неточным, если задействовано мультиплексирование (т.е. когда количество измеренных событий превышает количество доступных аппаратных счетчиков). В perf stat нет концепции настройки частот, поскольку все, что он делает, - это прямой подсчет всех событий, которые вы собираетесь измерять.

Это доказательство из исходного кода ядра Linux: -

Вы можете видеть, что он устанавливает период выборки (обратный частоте выборки) равным 0 - так что вы знаете, что такое частота выборки;)

В любом случае, вы можете подробно прочитать perf stat с помощью perf stat -v, чтобы увидеть и понять, что происходит со всеми событиями, которые вы измеряете.

Чтобы узнать больше о perf stat, вы также можете прочитать этот ответ.

person Arnabjyoti Kalita    schedule 05.11.2017