定時器匯聚是計算機系統的節能技術,通過降低軟件定時器的精度以允許進程喚醒同步來節約CPU被迫執行的昂貴的進入與退出空閒狀態英語idle (CPU)的次數,從而降低CPU能耗。[1]

Windows的定時器匯聚

編輯

如果處理器的空閒周期非常短暫,處理器進入與退出低功率狀態的能耗甚至會大於空閒狀態所節約的能耗。定時器匯聚幫助改進了周期軟件行為的能耗效率,這是通過把多個不同的軟件定時器在同一時間到期,從而增加了處理器平均空閒周期的長度。

Microsoft建議軟件開發者首先檢查能否去除周期性行為,可用事件驅動或者基於中斷的設計來代替。否則,應當使用定時器匯聚,至少使用32毫秒的定時器到期容限。[9]這對應於兩個缺省系統時鐘間隔(15.6毫秒)。建議軟件定時器間隔與容限都應是50毫秒的倍數。

設備驅動程序應該使用新的內核態API函數KeSetCoalescableTimer替代KeSetTimerEx。它的參數TolerableDelay指出定時器到期容限的毫秒數。

用戶態程序從Windows Vista開始支持SetThreadpoolTimer。從Windows 7開始使用Windows API函數SetWaitableTimerEx替代SetWaitableTimer。從Windows 8開始,使用Windows API函數SetCoalescableTimer

Linux的低分辨率定時器

編輯

參見

編輯

參考文獻

編輯
  1. ^ Anderson, Nate. How OS X “Mavericks” works its power-saving magic. Ars Technica. June 11, 2013 [2014-03-22]. (原始內容存檔於2017-02-22). 
  2. ^ Linux Kernel 2 6 22. kernelnewbies.org. [2014-03-22]. (原始內容存檔於2020-11-12). 
  3. ^ Add support for deferrable timers. 2007-05-08 [2014-03-22]. (原始內容存檔於2013-05-04). 
  4. ^ time(7) - Linux manual page. Man7.org. [2014-03-24]. (原始內容存檔於2019-05-08). 
  5. ^ prctl(2) - Linux manual page. Man7.org. [2014-03-24]. (原始內容存檔於2021-02-24). 
  6. ^ Windows Timer Coalescing. Microsoft. January 20, 2009 [2009-04-21]. (原始內容存檔於2009-04-16). 
  7. ^ OS X Mavericks - Advanced Technologies. Apple Inc. [2014-03-22]. (原始內容存檔於2013-06-13). 
  8. ^ OS X Mavericks: Core Technologies Overview (PDF). Apple, Inc. June 10, 2013 [2013-06-10]. (原始內容 (PDF)存檔於2013-06-26). 
  9. ^ Windows Timer Coalescing,January 20, 2009. [2017-11-16]. (原始內容存檔於2017-10-01).