我在文件perf.data
中输出了perf linux profiler(perf_events)。此文件是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
来自多个cpu核心,perf.data
中的事件可能无序(未按时间戳排序 - perf.data-file-format.txt: "The events are not necessarily in time stamp order")