[英]perf profiler result
我是新來的,
嘗試了解結果,但如何閱讀這樣的東西?
39.57% TestSoft.exe libc-2.15.so [.] 0x3fd59
7.04% TestSoft.exe libc-2.15.so [.] malloc
6.15% TestSoft.exe LoanSoft.exe [.] LoanDef::update_vec()
第一行可能是libc中的一些函數,但是它的功能是什么? 0x3fd59是什么意思? 另外,對於第二行,我的代碼中的哪個函數調用malloc? 對於第三行,我可以進一步對該函數執行perf只是為了查看update_vec()的哪個部分很慢?
非常感謝!
您需要使用調試符號進行構建(在編譯時將-g
選項傳遞給g ++)。 然后,您將能夠看到哪個函數使用該CPU時間。 您還需要使用帶有調試符號的庫。
由於轉儲是來自用戶模式的所有功能,因此建議使用調試符號編譯.x3fd59是一個例程,由於缺少符號,其實際名稱不可用。
請參閱此處在源級別進行分析。
39.57% TestSoft.exe libc-2.15.so [.] 0x3fd59
7.04% TestSoft.exe libc-2.15.so [.] malloc
6.15% TestSoft.exe LoanSoft.exe [.] LoanDef::update_vec()
首先表示在相應功能中收集的總樣本的百分比。
第二欄報告了收集樣品的過程。
第三列顯示樣本來自的ELF圖像的名稱。 如果程序是動態鏈接的,那么這可能會顯示共享庫的名稱。 當樣本來自內核時,則使用偽ELF圖像名稱[kernel.kallsyms]。
第四列表示采樣的特權級別,即程序在中斷時運行的時間:
[.] : user level
[k]: kernel level
[g]: guest kernel level (virtualization)
[u]: guest os user space
[H]: hypervisor
最后一列顯示符號名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.