西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
西西首頁 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專題合集

Windows的系統(tǒng)時鐘間隔(ClockInterval)

V1.0 綠色版
  • Windows的系統(tǒng)時鐘間隔(ClockInterval)V1.0 綠色版
  • 軟件大小:803KB
  • 更新時間:2012-07-04 15:25
  • 軟件語言:英文
  • 軟件廠商:
  • 軟件類別:國外軟件 / 免費軟件 / 系統(tǒng)其它
  • 軟件等級:3級
  • 應(yīng)用平臺:WinXP, WinAll
  • 官方網(wǎng)站:暫無
  • 應(yīng)用備案:
好評:50%
壞評:50%

軟件介紹

系統(tǒng)時鐘間隔是個一般不被關(guān)心的系統(tǒng)標(biāo)量,它反映了系統(tǒng)產(chǎn)生時鐘中斷的頻率,間隔越小頻率越高,反之亦然。每當(dāng)時鐘中斷產(chǎn)生,系統(tǒng)相關(guān)的中斷函數(shù)將會處理這個中斷。時鐘中斷處理函數(shù)會更新系統(tǒng)時間,檢查內(nèi)核調(diào)試信息等。

1. 線程調(diào)度和時鐘間隔
系統(tǒng)時鐘間隔和另一個極重要的系統(tǒng)標(biāo)量關(guān)聯(lián)在一起,即系統(tǒng)的線程調(diào)度時間。按照Windows系統(tǒng)的設(shè)計,線程調(diào)度時間被分為普通程序和后臺服務(wù)兩種類型。前者時間長度是2個時鐘間隔,后者時間長度是6個時鐘間隔。一旦時鐘間隔被確定,線程調(diào)度時間也就基本確定了。

OS根據(jù)平臺的不同,定義固定的最小和最大時鐘間隔。對于X86平臺而言,最小時鐘間隔是0.5ms,最大值大概是15.6001ms。在內(nèi)部,時鐘間隔以100ns為單位進行表述,所以0.5ms被表示為5000個100ns單位,15.6ms被表示為156001個100ns單位。

使用ClockInterval工具可以查看/設(shè)置系統(tǒng)時鐘頻率(類似的工具是Sysinternal的ClockRes工具,可以查看當(dāng)前值)。

線程調(diào)度時間是一個重要的系統(tǒng)標(biāo)量,對不用功能的應(yīng)用而言,它的取值具有矛盾性。如果調(diào)度時間太小,系統(tǒng)就會頻繁切換線程(時間片用完)而導(dǎo)致性能降低。而如果調(diào)度時間太長,某些對于實時性要求強的任務(wù)又無法接受。

線程調(diào)度時間和時鐘間隔的另一個關(guān)系是,系統(tǒng)把時鐘間隔的1/3作為線程調(diào)度的基本時間片段,也就是說,如果一個線程在運行過程中放棄剩余的時間片,則它用掉的和放棄的,都是1/3時鐘間隔的倍數(shù)。系統(tǒng)默認(rèn)總是使用最大時鐘間隔為當(dāng)前使用的時鐘頻率,時鐘間隔越大,線程就越可能在一個時間片內(nèi)完成全部工作,剩下的時間片還可以還給系統(tǒng)重新調(diào)度。應(yīng)放棄剩余時間片而產(chǎn)生的損失,不會操作1/3時鐘間隔。

哪些任務(wù)是屬于實時性能強的呢?音視頻軟件、實時監(jiān)控軟件等。MediaPlayer是一個強實時要求的音頻軟件,筆者在本機(Win7 64)做實驗發(fā)現(xiàn),每當(dāng)運行MediaPlayer程序,它都會把系統(tǒng)時鐘頻率調(diào)低到10ms;而當(dāng)退出MediaPlayer,時鐘頻率又會恢復(fù)至原值。類似的軟件還有WinAMP和魯大師,讀者有空可以實測一下,這兩款軟件會把系統(tǒng)時間間隔設(shè)置成1ms。

如果讀者使用這些軟件在自己的機器上未測試出類似情況,可能是由于讀者所使用的軟件版本與筆者當(dāng)前所使用的不一致,筆者對此不做特殊保證。

2. 用戶程序
用戶程序控制系統(tǒng)時鐘間隔,所能使用的最簡單的辦法是調(diào)用Windows MMLib庫的接口函數(shù)timeBeginPeriod。與timeBeginPeriod相匹配,存在另一個接口函數(shù)timeEndPeriod。后來用來將修改后的時鐘間隔恢復(fù)到原始值。

3. 恢復(fù)時鐘間隔
前文說過應(yīng)成對地使用timeBeginPeriod和timeEndPeriod函數(shù)(除非直接退出程序)。忘記調(diào)用timeEndPeriod會產(chǎn)生這樣的后果:以后任何程序如果要重新調(diào)試系統(tǒng)時鐘間隔,只能調(diào)低,不能調(diào)高。

雖然筆者編寫的軟件ClockInterval其內(nèi)部并未使用timeBeginPeriod和timeEndPeriod函數(shù),但上述規(guī)則卻同樣適用。可以用ClockInterval做下面的實驗:

開啟ClockInterval,假設(shè)你得到的結(jié)果和圖1相同,此時將當(dāng)前時鐘間隔設(shè)置成10ms,這一定是可以成功的。
開啟另一個ClockInterval實例,此時將看到當(dāng)前的時鐘間隔是10ms。嘗試將當(dāng)前時鐘間隔設(shè)置成最大值15.6ms,會發(fā)現(xiàn)設(shè)置失敗。

關(guān)閉第一個ClockInterval實例后,再次嘗試,使用第二步中的ClockInterval實例設(shè)置最大的時鐘間隔,成功!
一般來說,在打開ClockInterval程序后,界面上顯示的當(dāng)前時鐘間隔值是你所能重設(shè)的時鐘間隔的上限。點擊ClockInterval界面的test按鈕,會顯示關(guān)于此的更多信息
軟件標(biāo)簽: 系統(tǒng)時鐘 Clock

其他版本下載

發(fā)表評論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(0)條評論 > 字?jǐn)?shù): 0/500

TOP
軟件下載