C C 中如何精確計時

2021-06-18 11:02:14 字數 855 閱讀 2116

給程式計時對於程式設計師來說實在是太重要了,在windows上的那個clock()實在是不夠精確,精度只有10ms,真讓人難過。研究了下windows下使用c、c++計時的函式,給大家分享下。

主要就是兩個函式的使用。我先把一段可以執行的**貼出來,然後講講這兩個函式。

#include 

#include 

int main(

int argc, 

char **argv)

1、large_integer在微軟的編譯器中實際上是乙個union,它的定義如下:

typedef union _large_integer

;

struct

u;

longlong quadpart;

}large_integer,  *plarge_integer;

如果你使用的編譯器支援64位整數,那麼可以使用quadpart來引用變數的值。如果你的編譯器不支援64位整數,那麼可以使用lowpart和highpart來引用64位整數的低32位和高32位。

2、queryperformancefrequncy(large_integer *freq)

它用於獲得你的機器一秒鐘執行多少次,就是你的時鐘週期。

3、queryperformancecounter(large_integer *lpperformancecount)

它獲得的是cpu從開機以來執行的時鐘週期數。

o啦。。。。好好用用它吧。

windows下的C C 精確計時

由於我要測試線性篩法的速度,用上了c c 精確計時.此時傳統的clock 方法不夠用了,我們需要另一種測量的辦法,即cputicks cpufreq.如何實現呢?include large integer freq,start,stop queryperformancefrequency freq ...

Windows程式設計中實現精確計時

queryperformancecounter 函式返回高精確度效能計數器的值,它可以以微妙為單位計時.queryperformancecounter 確切的精確計時的最小單位是與系統有關的,queryperformancefrequency 提供了這個系統頻率值,它返回每秒嘀噠聲的個數.int g...

c 準確計時 C 精確計時

include large integer m freq,m timestart,m timenow queryperformancefrequency m freq queryperformancecounter m timestart double time double m timestart...