How to Measure Time in Microsecond

1 Windows實現微秒級誤差定時

typedef union _LARGE_INTEGER {
    struct {
        DWORD LowPart;
        LONG HighPart;
    } DUMMYSTRUCTNAME;
    struct {
        DWORD LowPart;
        LONG HighPart;
    } u;
    LONGLONG QuadPart;
} LARGE_INTEGER;

LARGE_INTEGER litmp;  
LONGLONG QPart1,QPart2; 
double dfMinus, dfFreq, dfTim;  
::QueryPerformanceFrequency(&litmp); 
/*獲得計數器的時鐘頻率*/
dfFreq = (double)litmp.QuadPart;
::QueryPerformanceCounter(&litmp); 
/*獲得初始值*/
QPart1 = litmp.QuadPart;
::Sleep(100); 
::QueryPerformanceCounter(&litmp); 
/*獲得中止值 */
QPart2 = litmp.QuadPart;
dfMinus = (double)(QPart2-QPart1); 
/*獲得對應的時間值,單位爲秒*/
dfTim = dfMinus / dfFreq;

2 Linux 實現微秒級誤差定時

3 Andriod實現微秒級誤差定時

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章