Фильтрация файлов perf.data (linux perf profiler) по временным интервалам - PullRequest
0 голосов
/ 25 мая 2018

У меня есть вывод профилировщика perf linux (perf_events) в файле perf.data.Этот файл является результатом perf record ./some_multithreaded_app или perf record -a sleep 600.В моем приложении чередуются несколько видов работ: генерация данных, полезные вычисления по данным, некоторая проверка результатов;со всех трех этапов началось много раз.Мое приложение также печатает временные метки между этапами (теперь только с точностью до секунды, следует изменить их на микро- или наносекунду).

Когда я делаю нормальный perf report, я получаю смесь результатов профилей со всех этапов.

Я хочу отфильтровать события, записанные в perf.data, для некоторых временных интервалов, когда работал второй этап, и получить вывод в виде нового файла, отформатированного perf.data, например perf.data.loop1.stage2.

Возможно лианализировать события из perf.data, применять простой фильтр к отметке времени события и выводить отфильтрованные события обратно в формат perf.data, задокументированный в

Как мой perf.data былиз нескольких ядер процессора события в perf.data могут быть не в порядке (не отсортированы по временным меткам - perf.data-file-format.txt: «события не обязательно расположены в порядке меток времени» )

...