c語言程式執行時間測試,C語言程式執行時間測試

時間 2021-08-13 14:24:10

1樓:

clock_t clock( void );

這個函式返回從“開啟這個程式程序”到“程式中呼叫clock()函式”時之間的cpu時鐘計時單元(clock tick)數,在msdn中稱之為掛鐘時間(wal-clock)。其中clock_t是用來儲存時間的資料型別,在time.h檔案中,我們可以找到對它的定義:

#ifndef _clock_t_defined

typedef long clock_t;

#define _clock_t_defined

#endif

很明顯,clock_t是一個長整形數。在time.h檔案中,還定義了一個常量clocks_per_sec,它用來表示一秒鐘會有多少個時鐘計時單元,其定義如下:

#define clocks_per_sec ((clock_t)1000)   //clocks_per_sec為系統自定義的

void elapsed_time()

#include “stdio.h”

#include “stdlib.h”

#include “time.h”

int main( )

{long i = 10000000l;

clock_t start, finish;

double total_time;

/* 測量一個事件持續的時間*/

printf( "time to do %ld empty loops is ", i );

start = clock();

while( i--) ;

finish = clock();

total_time = (double)(finish-start) / clocks_per_sec;

printf( "%f seconds/n", total_time);

return 0;

在筆者的機器上,執行結果如下:

time to do 10000000 empty loops is 0.03000 seconds

上面我們看到時鐘計時單元的長度為1毫秒,那麼計時的精度也為1毫秒,那麼我們可不可以通過改變clocks_per_sec的定義,通過把它定義的大一些,從而使計時精度更高呢?通過嘗試,你會發現這樣是不行的。在標準c/c++中,最小的計時單位是一毫秒。

參考資料

c語言測試程式執行時間.csdn部落格[引用時間2017-12-31]

2樓:

標頭檔案time.h

int a=clock();//從這開始計時這放要測試時間的**

int b=clock();//到這結束

int c=b-a;//算出來的單位是毫秒

在C語言中怎樣報告一個演算法的執行時間

include 標頭檔案。void main 這是我在做快排和冒泡比較時用到的一段 看完你應該很清楚了o o clock clock 是c c 中的計時函式,而與其相關的資料型別是clock t。在msdn中,查得對clock函式定義如下 clock t clock void 這個函式返回從 開啟這...

C語言程式無法執行,為什麼C語言程式編譯正確但不能執行?

void f int a,int x,int y,int m,int n 前幾行就有錯的,你 a什麼東西?你再仔細檢查檢查,把你的語法錯誤全排除掉。首先要編譯通過 再看看執行 先編譯一下,看看語法錯誤再說 為什麼c語言程式編譯正確但不能執行?編譯正確只是代表程式沒有語法錯誤,無法判斷邏輯錯誤。仔細檢...

c語言中的陣列選擇排序,為什麼執行時候的錯誤很詭異

是for i 0 imin a 0 for j i 1 jif min a j min a j t a j a j a i a i t 這一段寫得太詭異了!請改成 for i 0 it i for j i 1 jif a t a j t j if t i 不加這個判斷和冒泡就基本無異j a i a ...