valgrind之callgrind性能優化

1.callgrind概述

  它主要用來檢查程序中函數調用過程當中各個函數的CPU消耗,以便開發者分析程序中各個函數的CPU使用狀況,方便優化提供程序的運行效率。函數

2 安裝valgrind

$sudo apt install valgrind

3 編譯

  編譯程序時使用–g –O0,即編譯調試版,不優化程序性能。如:gcc -g -O0 sample.c –o sample性能

4 調試運行

$valgrind --tool=callgrind ./svpushlnx

  程序運行結束後,會在當前目錄下生成callgrind.out.($pid)分析日誌優化

5 分析CPU消耗

1.4.1 安裝kcachegrind

$sudo apt install kcachegrind

1.4.2 分析callgrind.out.($pid)日誌文件

$kcachegrind callgrind.out.24034

clipboard.png

如上圖所示,lr爲執行指令佔程序運行過程當中總指令的百分率。lr越高的函數,則說明其消耗的CPU資源越高。優化的空間就越大。當用戶選中左邊方框的函數後右下角會出現該函數的子調用過程(調用棧)已及各個子過程的ir,用戶能夠雙擊子過程進入子過程的調用棧。而右上角則顯示,有哪些函數可能會調用被選中的函數。spa

相關文章
相關標籤/搜索