linux下統計程序/函數運行時間(轉)


一. 使用time 命令

例如編譯一個hello.c文件

#gcc hello.c -o hello

生成了hello可執行文件,此時統計該程序的運行時間便可以使用如下命令

#time ./hello 
在程序運行結束后便會顯示出所需時間

real    0m2.913s
user    0m0.012s
sys     0m0.508s

 

二. 使用clock()函數統計

 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();           /*記錄起始時間*/
 9 
10     printf("time calc test\n");
11 /*
12     *
13     *
14     * 函數進行的一些列操作
15     *
16     * */
17 
18     /* Final Status */
19     end = clock();           /*記錄結束時間*/
20     {
21         double seconds  =(double)(end - start)/CLOCKS_PER_SEC;
22         fprintf(stderr, "Use time is: %.8f\n", seconds);
23     }
24     return 0;
25 }

 

 運行結果: 
# time ./helloTest
time calc test
Use time is 0.00003100

real    0m0.003s
user    0m0.000s
sys     0m0.000s

 

CLOCKS_PER_SEC用於將clock()函數的結果轉化為以秒為單位的量

三. 優缺點對比

time命令在不修改代碼的情況下記錄程序運行時間,但是,從上面對比可看出time命令統計的結果比較粗糙。 
另外,time命令,統計的結果包涵程序加載和退出的時間。因此,若想得出函數運行時間較為准確的結果,建議使用clock()函數。 
若想了解整個項目中各個函數的運行時間,以期獲得性能提升,建議使用——開源工具

 

轉自:http://blog.csdn.net/davie1love/article/details/47087475


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM