![](/img/trans.png)
[英]Profiling my program with linux perf and different call graph modes gives different results
[英]profiling linux application with perf record
我一直在嘗試通過在perf record上關注這篇文章來分析Linux中的C ++應用程序。 我的理解是,我需要做的是運行性能perf record program [program_options]
,其中program
是程序可執行文件,而[program options]
是我想要傳遞給程序的參數。 但是,當我嘗試像這樣配置我的應用程序時:
perf record ./csvJsonTransducer -enable-AVX-deletion test.csv testout.json
perf
幾乎立即返回報告。 但是,在沒有perf的情況下運行./csvJsonTransducer -enable-AVX-deletion test.csv testout.json
大約需要30秒,我想讓perf
監視程序的整個執行過程,而不是立即返回。 為何perf
回報如此之快? 如何考慮程序的整個運行過程?
您的命令似乎沒問題。 嘗試在/proc/sys/kernel/perf_event_paranoid
更改偏執級別。 將此參數設置為-1(作為root用戶)應該可以解決權限問題:
echo "-1" > /proc/sys/kernel/perf_event_paranoid
您也可以嘗試使用perf record
設置要監視的事件。 默認事件是cycles
(如果支持)。 檢查man perf-list
。
嘗試命令:
perf record -e cycles ./csvJsonTransducer -enable-AVX-deletion test.csv testout.json
強制監視周期。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.