好幾次看到網上有人將各種排序方法用執行時間來進行比較,但一直不知道執行時間是怎麼計算出來的,或者說執行時間是呼叫什麼函式才能得到的。今天在做關於大數的問題時,想要計算一下程式執行的時間,經過網上搜尋,才發現資料挺多,也知道了
clock()這個函式。下面就對clock()這個函式做一下解析。
首先呼叫clock()時,必須先包含標頭檔案 。
其次,在這個標頭檔案中,定義了乙個存放時間值的型別clock_t如下:
#ifndef _clock_t_defined
typedef long clock_t;
#define _clock_t_defined
#endif
可見所謂的clock_t就是乙個long型資料。我們要用的clock()的返回值就是乙個clock_t型別。其函式原型如下:
clock_t clock( void );
如果函式呼叫成功返回從程序開始到呼叫該函式的響應時間又稱為(牆上時間(wall-clock time)或流逝時(elapsed time))
程式的響應時間包括兩部分:cpu實際執行程式的時間(稱為cpu時間)和程序等待時間,其中程序等待時間包括由於程序排程而
必須延遲的時間(即程序在就緒態的時間)和其他等待時間,如磁碟等待、i/o等待或等待某個外部事件發生等等;cpu執行程式
的時間又可以包含兩部分:cpu執行本程式**的時間和cpu執行作業系統**的時間(如程序排程**,提供給使用者程序的i/o
**等等)。
最後,來看一下msdn上的例子及其執行結果:
計算程式執行時間
在長時間計算程式執行時間時,可以使用clock函式。clock比較通用,精度並不是特別的高,大約是10ms。但是對於長時間的計算的話,還是可以使用的。以下是一段示例程式,將幫助你理解 include stdio.h include memory.h include time.h define siz...
程式執行時間計算
int sum int n 分析 宣告不計時間,第一句,第四句各占用乙個時間單位。第三句每執行一次占用四個時間單位,兩次乘法,一次加法,一次賦值。而執行n次共占用4n個時間單位。第二行初始化i,乙個時間單位 測試i n,n 1個時間單位 i n個時間單位 總共2n 2。忽略呼叫,返回值的開銷,以上總...
計算程式執行時間
在編寫完程式後,通常都會對程式進行效能測試,比較常用的方法就是計算完成某個任務所花費的時間。system類提供了獲得當前時間的方法,但是其單位是毫秒,閱讀不方便。本例項將其轉換成方便的閱讀格式。例項執行效果如圖 system類包含一些有用的類字段和方法,它不能被例項化。在 system 類提供的設施...