共用方式為


開啟/關閉效能的最佳做法

平台

客戶- Windows Vista |Windows 7
伺服器- Windows Server 2008 |Windows Server 2008 R2

Description

系統電源狀態 (或 S 狀態) ,如進階電腦電源介面 (ACPI) 規格中所定義,會以共通方式呼叫開啟/關閉狀態,因為最常見的 S 狀態轉換是電腦開啟和關閉。 執行 Windows Vista 或 Windows 7 之系統上的不同開啟/關閉狀態轉換是開機、睡眠 (ACPI S3) 、休眠 (ACPI S4) 和關機。

這些開啟/關閉轉換期間的良好效能不僅可改善電腦的認知品質,也會大幅影響每日電腦使用模式和系統可靠性。 客戶可能會因為開機或關閉而花費太多時間的系統感到挫折。 長時間睡眠和休眠轉換的行動系統可能會不必要的耗盡電池使用時間。 較長的關機時間也會對行動系統的可靠性造成負面影響。 例如,它們會增加非預期電源截斷的風險。

驅動程式、應用程式和服務等系統延伸模組可能會對開啟/關閉轉換時間產生重大影響。 本節討論應用程式和服務開發人員可遵循的一些最佳做法,以避免在開機、待命和關機期間發生延遲,並確保在開機後和繼續後使用者體驗有回應。 如需如何使用 Windows Performance Toolkit 識別開機/關閉效能問題的詳細資料,並針對您的應用程式或服務實作下列建議,請參閱一節中的白皮書。

最佳做法

  • 使用 Windows Performance Toolkit 來測量所有開啟/關閉轉換期間的效能。
  • 以受控制的方式執行測試,並針對有效的基準進行比較:
    • 盡可能取得系統上的基準測量,且系統擴充功能越少
    • 一次新增一個應用程式和服務
    • 測試在開啟/關閉轉換時間中無法接受的回歸
  • 避免在重大開機路徑上使用受控程式碼的應用程式。
  • 確定所有應用程式都會 (WM_QUERYENDSESSION和WM_ENDSESSION訊息) 快速回應關機通知。
  • 藉由將 CPU、磁片和網路活動降到最低,以回應關機通知,以減少服務和應用程式的關機路徑延遲。
  • 避免處理暫停通知 (WM_POWERBROADCAST訊息) 延遲。
  • 快速回應繼續事件,並將繼續後的 CPU、磁片和網路使用量降到最低。
  • 減少開機後的應用程式資源耗用量。
  • 請勿在每個開機時從 RunOnce 金鑰啟動應用程式。
  • 將所有非必要的服務轉換為要求啟動或觸發啟動,以便在開機期間提供系統資源。
  • 避免使用載入順序群組來表示服務相依性。
  • 請確定所有執行中的服務都會在開機期間儘快回報此狀態,以避免封鎖服務控制管理員 (SCM) 。
  • 請避免在啟動路徑上使用 Managed 程式碼的服務。
  • 除非絕對必要,否則不允許服務選擇接收預先關機和關機通知, (SERVICE_CONTROL_PRESHUTDOWN和SERVICE_CONTROL_SHUTDOWN控制程式代碼) 。
  • 確定已選擇接收關機通知的所有服務都會快速回應 SCM。
  • 確認除非絕對必要,否則服務不會選擇接收暫停通知。
  • 請確定所有服務都能快速回應繼續事件,並將繼續後的 CPU、磁片和網路使用量降到最低。