double getUnixTime(void)
{
struct timespec tv;
if(clock_gettime(CLOCK_REALTIME, &tv) != 0) return 0;
return (((double) tv.tv_sec) + (double) (tv.tv_nsec / 1000000000.0));
}
double start_time = getUnixTime();
double stop_time, difference;
algorithm();
stop_time= getUnixTime();
difference= stop_time - start_time;
printf("elipsed time :%lf
s",difference);
g++ t.c++ -lrt
gprof
成都創(chuàng)新互聯(lián)公司主營德城網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā),德城h5重慶小程序開發(fā)搭建,德城網(wǎng)站營銷推廣歡迎德城等地區(qū)企業(yè)咨詢gprof -b -p astart gmon.out >&tmp.txt
@ gprof hello gmon.out -p 得到每個函數(shù)占用的執(zhí)行時間
@ gprof hello gmon.out -q 得到call graph,包含了每個函數(shù)的調(diào)用關(guān)系,調(diào)用次數(shù),執(zhí)行時間等信息。
@ gprof hello gmon.out -A 得到一個帶注釋的“源代碼清單”,它會注釋源碼,指出每個函數(shù)的執(zhí)行次數(shù)。這需要在編譯的時候增加 -g選項。
http://www.thegeekstuff.com/2012/08/gprof-tutorial/