如何衡量Linux上单个分支的误预测?

nwe*_*hof 5 linux profiling branch-prediction perf

我知道在执行程序时我可以得到分支误预测的总百分比perf stat.但是,如何获取特定分支(ifswitchC代码中的语句)的统计信息?

ami*_*dev 7

您可以对branch-misses活动进行抽样:

sudo perf record -e branch-misses <yourapp>

然后报告它(甚至选择你感兴趣的功能):

sudo perf report -n --symbols=<yourfunction>

在那里,您可以访问带注释的代码并获取给定分支的一些统计信息.或直接annotate使用带有--symbol选项的perf命令.

  • 记录`branches`和`branch-misses`事件可能更有用:`sudo perf record -e branches,branch-missses`.使用`--symbol`,该函数将有总计数; 在带注释的代码中,将显示当前函数的总计数百分比. (4认同)