linux下統(tǒng)計(jì)程序/函數(shù)運(yùn)行時(shí)間
例如編譯一個(gè)hello.c文件
#gcc hello.c -o hello
生成了hello可執(zhí)行文件,此時(shí)統(tǒng)計(jì)該程序的運(yùn)行時(shí)間便可以使用如下命令
#time ./hello
在程序運(yùn)行結(jié)束后便會(huì)顯示出所需時(shí)間
real 0m2.913s user 0m0.012s sys 0m0.508s
二. 使用clock()函數(shù)統(tǒng)計(jì)
1 #include<stdio.h> 2 #include <time.h> /*要包含的頭文件*/ 3 4 int main(int argc, char *argv[]) 5 { 6 /* Init */ 7 clock_t start, end; 8 start = clock(); /*記錄起始時(shí)間*/ 9 10 printf("time calc test\n");11 /*12 *13 *14 * 函數(shù)進(jìn)行的一些列操作15 *16 * */17 18 /* Final Status */19 end = clock(); /*記錄結(jié)束時(shí)間*/20 {21 double seconds =(double)(end - start)/CLOCKS_PER_SEC;22 fprintf(stderr, "Use time is: %.8f\n", seconds);23 }24 return 0;25 }
運(yùn)行結(jié)果:
# time ./helloTest time calc test Use time is 0.00003100real 0m0.003s user 0m0.000s sys 0m0.000s
CLOCKS_PER_SEC用于將clock()函數(shù)的結(jié)果轉(zhuǎn)化為以秒為單位的量
三. 優(yōu)缺點(diǎn)對(duì)比
time命令在不修改代碼的情況下記錄程序運(yùn)行時(shí)間,但是,從上面對(duì)比可看出time命令統(tǒng)計(jì)的結(jié)果比較粗糙。
另外,time命令,統(tǒng)計(jì)的結(jié)果包涵程序加載和退出的時(shí)間。因此,若想得出函數(shù)運(yùn)行時(shí)間較為準(zhǔn)確的結(jié)果,建議使用clock()函數(shù)。
若想了解整個(gè)項(xiàng)目中各個(gè)函數(shù)的運(yùn)行時(shí)間,以期獲得性能提升,建議使用——開(kāi)源工具
轉(zhuǎn)自:http://blog.csdn.net/davie1love/article/details/47087475
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。
三維掃描儀相關(guān)文章:三維掃描儀原理