win與Linux中的精確計時

2021-06-26 20:05:20 字數 972 閱讀 9067

win下精確計時, 有二種方法,精度不同**如下:

dword starttime = gettickcount();

// do something

dword totaltime = gettickcount() - starttime;

根據msdn,此方法的精確度為10-16ms

// 取得時鐘頻率

large_integer litmp ;

queryperformancefrequency(&litmp);

large_integer start;

queryperformancecounter(&start) ;

//do something

large_integer end;

queryperformancecounter(&end) ;

double dtotaltime = (double)(end.quadpart-start.quadpart) / (double)litmp.quadpart; //秒

linux下精確計時,**如下:

//此方法精度可達到微妙級

#include struct timeval starttime,endtime;

float timeuse;

gettimeofday(&starttime,null);

gettimeofday(&endtime,null);

timeuse = 1000000*(endtime.tv_sec - starttime.tv_sec) + (endtime.tv_usec - starttime.tv_usec);

timeuse /= 1000;//毫秒

printf("timeuse = %f\n",timeuse);

Linux下精確計時

1.低精度計時 1.1sleep 和 usleep sleep int x 系統呼叫,讓程序等待x秒鐘。其精度以秒為單位的。usleep int x 系統呼叫,讓程序等待x 納秒,但實際其精度一般是10ms,再低的達不到。這兩個函式的優點是簡單,缺點程序被阻塞。1.2alarm鬧鐘 alarm也稱為...

C C 中如何精確計時

給程式計時對於程式設計師來說實在是太重要了,在windows上的那個clock 實在是不夠精確,精度只有10ms,真讓人難過。研究了下windows下使用c c 計時的函式,給大家分享下。主要就是兩個函式的使用。我先把一段可以執行的 貼出來,然後講講這兩個函式。include include int...

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

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