使用API實現1/1000秒的性能測試類
?






























































































































































c++版的:


















































































posted on 2006-06-16 14:07 夢在天涯 閱讀(1724) 評論(1) 編輯 收藏 引用 所屬分類: CPlusPlus 、C#/.NET 、VS2005/2008
{C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}
?
posted on 2006-06-16 14:07 夢在天涯 閱讀(1724) 評論(1) 編輯 收藏 引用 所屬分類: CPlusPlus 、C#/.NET 、VS2005/2008
GetTickCount()和GetCurrentTime()都只精確到55ms(1個tick就是55ms)。如果要精確到毫秒,應該使用timeGetTime函數或QueryPerformanceCounter函數。
雖然timeGetTime返回值的單位是1ms,但實際上它的精度只有10ms左右。
如果想提高精度,可以使用QueryPerformanceCounter和QueryPerformanceFrequency。這兩個函數不是在每個系統中都支持。對于支持它們的系統中,可以獲得低于1ms的精度。Windows 內部有一個精度非常高的定時器, 精度在微秒級, 但不同的系統這個定時器的頻率不同, 這個頻率與硬件和操作系統都可能有關。利用 API 函數 QueryPerformanceFrequency 可以得到這個定時器的頻率。利用 API 函數 QueryPerformanceCounter 可以得到定時器的當前值。根據要延時的時間和定時器的頻率, 可以算出要延時的時間定時器經過的周期數。在循環里用 QueryPerformanceCounter 不停的讀出定時器值, 一直到經過了指定周期數再結束循環, 就達到了高精度延時的目的。 回復 更多評論
只有注冊用戶登錄后才能發表評論。 | ||
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
![]() |
||
相關文章:
|
||
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|