一.高精度延時, 是 CPU 測速的基礎(chǔ)
Windows 內(nèi)部有一個精度非常高的定時器, 精度在微秒級, 但不同的系統(tǒng)這個定時器的頻率不同, 這個頻率與硬件和操作系統(tǒng)都可能有關(guān)。
利用 API 函數(shù) QueryPerformanceFrequency 可以得到這個定時器的頻率。
利用 API 函數(shù) QueryPerformanceCounter 可以得到定時器的當前值。
根據(jù)要延時的時間和定時器的頻率, 可以算出要延時的時間定時器經(jīng)過的周期數(shù)。
在循環(huán)里用 QueryPerformanceCounter 不停的讀出定時器值, 一直到經(jīng)過了指定周期數(shù)再結(jié)束循環(huán), 就達到了高精度延時的目的。
高精度延時的程序, 參數(shù): 微秒
二.測速程序
利用 rdtsc 匯編指令可以得到 CPU 內(nèi)部定時器的值, 每經(jīng)過一個 CPU 周期, 這個定時器就加一。
如果在一段時間內(nèi)數(shù)得 CPU 的周期數(shù), CPU工作頻率 = 周期數(shù) / 時間
為了不讓其他進程和線程打擾, 必需要設(shè)置最高的優(yōu)先級
以下函數(shù)設(shè)置當前進程和線程到最高的優(yōu)先級。
SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS)
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL)
CPU 測速程序的源代碼, 這個程序通過 CPU 在 1/16 秒的時間內(nèi)經(jīng)過的周期數(shù)計算出工作頻率, 單位 MHz:
標簽:
Windows
CPU
API
定時器
上傳時間:
2015-04-29
上傳用戶:iswlkje
執(zhí)行步驟1:
執(zhí)行EX1126程式進入學(xué)生考試系統(tǒng)
權(quán)限描述:
使用者查詢:於”姓名”中輸入”Arno”,於”學(xué)號”中輸入”good”,再按下”使用者查詢”
即可查詢.
修改使用者:於”姓名”中輸入”GUEST”,於”學(xué)號”中輸入”0000”,再按下” 修改使用者即可修改:
功能描述:
使用者開始考試,於”姓名”中輸入自己的姓名,於”學(xué)號”中輸入學(xué)號,再按下” 考試去”即可: 開始考試,同時系統(tǒng)紀錄考生狀態(tài)為”1”.
使用者考試,完成後按下”結(jié)算成績”,同時系統(tǒng)顯示紀錄考生該科分數(shù),同時清除考生登入狀態(tài),使其無法重覆考試,老師並可查詢考生成績.
標簽:
1126
Arno
good
EX
上傳時間:
2016-07-31
上傳用戶:chens000