[英]How to interpret addresses in Google perf tools CPU profiler
我的C ++程序消耗了大量的CPU,並且運行時更多。 我使用Google Performance Tools來分析CPU使用情況,這就是我得到的:
(pprof) top
Total: 1343 samples
1330 99.0% 99.0% 1330 99.0% 0x0000000801dcb11c
7 0.5% 99.6% 7 0.5% 0x0000000801dcb11e
4 0.3% 99.9% 4 0.3% program::threadWorker
1 0.1% 99.9% 1 0.1% 0x0000000801dcb110
1 0.1% 100.0% 1 0.1% 0x00007fffffffffc0
但是,此處顯示的5個進程中只有1個是實際的函數名稱; 其余的都是地址。 我怎樣才能知道這些地址的含義? (當然,我最感興趣的是上面顯示的第一個地址)
編輯:這是我運行探查器的方式:
env CPUPROFILE=prof.out ./a.out
[kill program]
pprof ./a.out prof.out
此外,我通過代碼檢查找到了根本原因。 但讓探查器精確定位罪魁禍首而不是地址仍然是件好事。
在google-pprof中加載結果時,您是否可能未指定可執行文件?
我把它當作:
$ google-pprof executable /tmp/executable.hprof --text | less
並且可以看到函數名稱就好了。 或者,當您運行google-pprof時,這些方法是在某些共享庫中而不是在您的路徑中?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.