簡體   English   中英

linux perf報告行為不一致

[英]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可以使用不同的方法記錄調用圖:

  • fp(函數指針)
  • lbr(上一個分支記錄)
  • 侏儒

也許不同的方法會帶來更好的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM