0%

如何使用gprof

gropf是gnu工具之一,在編譯的時候加入了profiling的source code,執行時統計user space的執行資料,可以得到每個function的被呼叫次數,執行時間,呼叫關係等。

以下是一個簡單範例

##Quick Start

先用gcc編譯程式

1
gcc hello.c -o hello -pg -g

-pg表示開啟profiling功能,如果要得到帶注視的程式碼清單,需加上-g。

執行程式

1
./hello

此時會產生 gmon.out檔

使用gprof對程式進行分析

1
gprof hello gmon.out -p

得到每個函數所佔用的執行時間

1
gprof hello gmon.out -q

得到call graph,每個函數的呼叫關係,

1
gprof hello gmon.out -A

得到帶注釋的source code清單,列出每個函數的呼叫次數。