linux下統計程式/函式執行時間
阿新 • • 發佈:2019-02-07
如果只是初步統計或比較各函式的執行時間,可以用以下方法,若是想詳細統計專案中各個函式時間,建議使用第三方工具
一. 使用time 命令
例如編譯一個hello.c檔案
#gcc hello.c -o hello
生成了hello可執行檔案,此時統計該程式的執行時間便可以使用如下命令
#time ./hello
在程式執行結束後便會顯示出所需時間
real 0m2.913s
user 0m0.012s
sys 0m0.508s
二. 使用clock()
函式統計
#include<stdio.h>
#include <time.h> /*要包含的標頭檔案*/
int main(int argc, char *argv[])
{
/* Init */
clock_t start, end;
start = clock(); /*記錄起始時間*/
printf("time calc test\n");
/*
*
*
* 函式進行的一些列操作
*
* */
/* Final Status */
end = clock(); /*記錄結束時間*/
{
double seconds =(double)(end - start)/CLOCKS_PER_SEC;
fprintf(stderr , "Use time is: %.8f\n", seconds);
}
return 0;
}
執行結果:
# 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()函式。
若想了解整個專案中各個函式的執行時間,以期獲得性能提升,建議使用 ——開源工具