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

我知道在执行一个perf stat程序时,我可以得到分支错误预测的总百分比。 但是,我怎么能得到一个特定的分支统计( if或C语言switch语句)?

Solutions Collecting From Web of "如何衡量Linux上单个分支的预测失误?"

您可以在branch-misses事件上进行抽样:

sudo perf record -e branch-misses <yourapp>

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

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

在那里你可以访问注释的代码,并获得给定分支的一些统计数据。 或者annotate带有--symbol选项的perf命令直接annotate它。