如果核心利用率大致恒定,则使用perf record
采样cpu周期对于查找优化候选者很有用。但是对于具有多个阶段的并行度不同的代码,计算cpu周期将强调大量的并行阶段,同时又不强调会影响挂墙时间的顺序或有限并行度阶段。简而言之,单纯使用perf可能会突出显示amdahl's law
所以问题是如何获得perf record
/ perf report
来寻找减少墙壁时间的优化候选者,这可能是持续并行的瓶颈中始终并行的并行代码中最热的循环到一个漫长的单线程阶段。
已知的解决方法有待改进:
元:这是针对特定性能的跟踪to a more general question
答案 0 :(得分:2)
KDAB Hotspot 是一个 GUI,可以分析 perf record
输出,如果配置文件已使用 -e sched:sched_switch --switch-events --sample-cpu