2014-11-03 62 views
1

我有興趣從C/C++編寫的代碼中測試一些函數調用的速度。我搜索了,並且我被導向使用Callgrind工具使用Valgrind平臺。Callgrind:如何使用Callgrind工具來評估函數速度

我簡要閱讀了manual,但我仍然想知道如何利用該工具的功能來評估函數運行時速度的時間。

我想知道如果我能得到一些指示我如何能實現我的目標。

任何幫助,將不勝感激。

回答

2

用調試符號編譯你的程序(例如GDB符號工作正常,它們用「-ggdb」標誌激活)。

如果您正在執行程序是這樣的:那麼

valgrind --tool=callgrind ./program 

Callgrind會產生一個名爲callgrind.out.1234:

./program 

然後用Valgrind的+ Callgrind使用此命令運行(1234是進程ID,運行時可能會有所不同)。打開此文件:

cg_annotate callgrind.out.1234 

您可能想要使用grep來提取您的函數名稱。在左欄中顯示用於該功能的指令數量。但是,使用較少量指令的函數將被忽略。

如果你想看到輸出一些漂亮的圖形,我會建議你安裝KCachegrind。