2014-04-12 26 views

回答

0

默認perf recordcycles事件執行採樣。每次發生給定數量的週期事件時,都會記錄其內部具有不同事物(例如指令指針)的樣本。有了這個,你可以主要觀察你花在你的代碼中的哪一部分代碼。

要執行採樣的事件是使用-e選項指定的。也許你可以嘗試指定分支預測錯誤事件(根據你的硬件),並且樣本只會在此事件的每次X事件中生成。但我不確定所有事件都有可能進行抽樣。

我不知道它真正的意思,但我PERF版本3.11,以下選項存在:

-j,--branch過濾 啓用的分支堆棧採樣。每個樣本都捕獲一系列連續的分支。每個樣本捕獲的分支數量取決於底層的硬件,感興趣的分支類型以及執行的代碼。可以選擇啓用過濾器捕獲的分支類型。

+0

「-j」是LBR - Intel最後一個分支記錄(由CPU執行的前N個分支的列表)。 @ user46317需要'perf record -e branch-misses',並且大多數CPU事件支持定期採樣(每個X事件都會產生一個硬件中斷中斷)。我認爲,只有uncore事件不能產生perf中斷,並且可能只針對當前值或總值進行輪詢。 – osgx

相關問題