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

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

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

軟件介紹

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

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

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

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

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

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

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

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

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

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

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

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

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

其他版本下載

發(fā)表評論

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

TOP
軟件下載