[英]linux perf report inconsistent behavior
我有我使用分析應用程序的perf
和使用時,我發現結果perf report
並不一致,我不能辨別的模式。
我啟動該應用程序,並通過pid對其進行了配置60秒鍾:
perf record -p <pid> -o <file> sleep 60
當我用性能perf report -i <file>
提取結果時,有時我在最左列看到一個“ +”,當我按ENTER鍵時,它可以使我深入到函數調用樹中,有時還可以看到“ +”不在這里。 它似乎取決於記錄文件的某些屬性,因為我有一個記錄文件的集合,一些文件允許進行向下鑽取,而有些文件則不允許。
在這里如何獲得一致的行為的任何建議將不勝感激。
性能記錄記錄的默認事件是cpu-cycles。 (或者取決於機器,有時是cpu-cycles:p或cpu-cycles:pp)
您確定您的應用程序沒有睡很多嗎? 它會消耗很多cpu周期嗎?
通過執行大量計算,在對CPU造成壓力的事物上進行性能測量:
$ apt-get install stress
$ perf record -e cpu-cycles --call-graph fp stress --cpu 1 --timeout 5
$ perf report
然后,后續運行應顯示或多或少相似的結果。
如果您的程序占用大量CPU,並且兩次運行之間的調用堆棧確實相差很大,那么您可能需要查看--call-graph選項,因為perf可以使用不同的方法記錄調用圖:
也許不同的方法會帶來更好的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.