3
我知道我可以通過perf stat
獲得程序執行期間分支預測失誤的總百分比。但是,如何獲得特定分支的統計信息(C代碼中的if
或switch
語句)?如何測量Linux上單個分支的錯誤預測?
我知道我可以通過perf stat
獲得程序執行期間分支預測失誤的總百分比。但是,如何獲得特定分支的統計信息(C代碼中的if
或switch
語句)?如何測量Linux上單個分支的錯誤預測?
您可以在branch-misses
事件示例:
sudo perf record -e branch-misses <yourapp>
,然後報告它(即使選擇你感興趣的功能):
sudo perf report -n --symbols=<yourfunction>
在那裏,你可以訪問帶註釋的代碼並獲得給定分支的一些統計信息。或直接annotate
它與perf命令與--symbol
選項。
記錄'branches'和'branch-misses'事件可能更有用:'sudo perf record -e branches,branch-missses'。用'--symbol'將會有這個函數的總數;在註釋代碼中,當前函數總計數的百分比。 – osgx