性能分析工具使用 callgrind+kcachegrind
一、簡述
本文講述如何應用callgrind和kcachegrind進行性能分析。該工具可以方便分析出可執行文件函數的執行時間及調用關係。
二、開發環境
操作系統 Mint17 內核 3.13.0 編譯器 gcc4.8.0 CPU VIA Nano X2 L4530 @ 1.6+ GHz 內存 4G 多核 2個
三、安裝 sudo apt-get install valgrind kcachegrind 四、使用 原始調試文件: perf.c:
#include <stdio.h>
void hello()
{
printf("hello world!\n");
}
void test()
{
hello();
printf("test \n");
}
void main()
{
hello();
hello();
test();
test();
test();
}
編譯:
gcc -W -Wall -pedantic -ansi -std=gnu99 -g -O0 -pg perf.c -o perf
利用valgrind生成性能日誌
valgrind --tool=callgrind ./perf
利用kcachegrind 打開生成的callgrind.out.2622。
kcachegrind callgrind.out.2622
可以看出分析出了每個函數調用的時間及比例以調用關係圖。