main.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void test1(void)
{
for (int x = 0; x < 100; x++);
}
void test2(void)
{
usleep(1);
}
void test3(void)
{
usleep(100);
}
int main(int argc, char** argv)
{
while (1) {
test1();
test2();
test3();
}
}
編譯、執行
$ gcc main.c -o main -ggdb
$ valgrind --tool=callgrind ./main
==7937== Callgrind, a call-graph generating cache profiler
==7937== Copyright (C) 2002-2017, and GNU GPL'd, by Josef Weidendorfer et al.
==7937== Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info
==7937== Command: ./main
==7937==
==7937== For interactive control, run 'callgrind_control -h'.
按下Ctrl + C結束並且執行如下程式
$ kcachegrind callgrind.out.xxx