共用方式為


提供絕佳的啟動和關機體驗

本節提供快速啟動體驗的概觀,以及我們的建議給合作夥伴,為客戶提供最佳的開啟/關閉體驗。

電腦一天可以開啟和關閉許多次。 根據裝置的使用模式和電池使用時間功能,電腦可能會關閉、睡眠或休眠。 系統開機是使用者在其裝置上擁有的第一個體驗,而且是裝置存留期的週期性體驗。 客戶遙測告訴我們,使用者至少一天開機並關閉其電腦一次。 雖然連線待命功能可減少裝置必須開機的頻率,但軟體與韌體更新、低電池狀態和裝置的主要設定變更仍可能需要開機。

從 Windows 8.x 開始,開啟/關閉轉換的速度明顯比舊版 Windows 更快。 先前使用的使用者互動模型是中斷開機,並按按鍵來表示替代開機路徑。 開機時間更快,開機中斷並不實用,對開機體驗造成負面影響。 在舊版中,請務必儘快停止開機程式,例如開機至替代作業系統,因為往後移動是很長且緩慢的程式。 使用慢速開機時間,建立可偵測並啟動按鍵的時間週期也比較容易。 在 Windows 8.x 和 Windows 10 中,這不再是這種情況。

使用休眠技術大幅改善預設開機效能。 如需改善開啟/關閉體驗效能的相關資訊,請參閱 休眠 (S4) 暫停和繼續。 本主題中的考慮概述快速開啟/關閉轉換的使用者模型、與這些轉換相關的選項,以及 OEM/ODM 提供體驗所需的元件。

考量

開機延遲的主要來源是 OEM 軟體預先載入。 快速啟動代表大約 50% 的整體開機時間,而且會受到下列第一方和協力廠商進程在開機時啟動的直接影響:

  • 正在繼續的服務

  • 啟動應用程式,例如匣執行快捷方式、OEM 狀態指示器等等

  • 防毒軟體活動

這些進程會耗用 CPU 和磁片系統資源,而且可能會導致瓶頸,這會使裝置沒有回應、延遲應用程式啟動時間,或讓應用程式執行速度變慢。

在優化開啟/關閉效能時,請考慮下列建議:

  • 判斷哪些非收件匣 1st 或協力廠商進程已載入並在您的系統上執行。

  • 判斷透過登錄執行機碼在開機時啟動的專案;通常,這些是 IHV 硬體相關程式。

  • 避免在開機路徑中包含 Managed 程式碼進程。

  • 使用技術來延遲開機時啟動進程。

  • 請考慮將傳統型應用程式轉換成 Microsoft Store 應用程式,這不會對開機造成影響。 使用 IHV 來利用 Microsoft Store 裝置應用程式。

  • 瞭解記憶體耗用量對轉換時間的影響,並遵循下列建議:

    • 將記憶體耗用量優化,以減少休眠檔案的大小。

    • 使用新的 Hiberfile 診斷模式。

    • 避免在膝上型電腦和 Ultraportable 上啟用混合式睡眠,因為它會在待命暫停 (S3) 產生休眠檔案。

  • 移轉更新程式進程以使用 AM 來減少載入的進程數目。

  • 瞭解磁片輸送量對於開啟/關閉效能至關重要。 例如:

    • 平均而言,休眠檔案讀取/寫入時間代表啟動畫面時間的 50%。

    • 大部分的系統在開機時都是磁片系結。

    • 更快速的 HDD/SSD 可以減輕在開機時載入和初始化大量軟體預先載入的影響。

    • 請考慮平衡 CPU、磁片效能和記憶體容量。

  • 瞭解混合式磁片磁碟機對於開啟/關閉效能很有説明,並考慮使用新的混合式磁片磁碟機提示功能。

快速啟動

從 Windows 8.x 開始,預設關機和重新開機案例已更新並命名為快速啟動。 快速啟動會從關機程式開始,並包含將資料寫入磁片,類似于休眠程式。 主要差異在於, (會話 1) 的所有使用者會話都會登出,其餘資訊會寫入休眠檔案。 當您從這個狀態開機電腦時,Windows 會從休眠檔案讀取來載入先前初始化的狀態,而不是執行 Windows、驅動程式、裝置和服務初始化的完整開機程式。 這個方法可加速初始化鎖定或開始畫面的程式。

此外,已擴充使用休眠技術,以建立比完整開機更快速的新預設啟動和關機體驗。 如需詳細資訊,請參閱下圖:

快速啟動和關機階段的圖表

更快速的啟動和關機順序會使用休眠基礎結構將電腦置於休眠狀態。 與完整關機和開機不同,使用者會話會關閉並執行休眠。 因此,休眠檔案會比較小,確保休眠和繼續程式更快。 此順序也會利用平行處理優化。

使用系統服務和系統整合者建立驅動程式或應用程式的開發人員應該監視驅動程式品質問題,例如記憶體流失。 雖然驅動程式品質一直很重要,但請注意,核心重新開機之間的執行時間可能會比舊版 Windows 大幅長,因為在使用者起始的關機期間,核心、驅動程式和服務會保留並還原,而不只是重新開機。

完整開機

若要獲得最佳的啟動體驗,請考慮下列建議:

  • 平衡 CPU 效能、磁片效能和記憶體容量。

  • 優化 UEFI 讀取路由效能。

  • 請確定分葉節點裝置的驅動程式遵循快速繼續指導方針。

  • 請確定驅動程式儘快完成其 S0 set-power IRP,以防止其他裝置啟動其 S0 set-power IRP。

  • 根據記憶體流失來驗證驅動程式和服務。

  • 除非絕對必要,否則避免註冊服務以接收電源管理事件通知。

  • 確定驅動程式在完成D_IRP之前,不會等待完成其S_IRP。 這樣做可防止其他裝置接收其S_IRPs,這會導致序列化延遲並增加整體暫停時間。

關機 API 行為

為了確保與應用程式的最佳相容性,同時啟用新應用程式的最佳體驗,已建立新的旗標來要求關機以進行快速啟動。 下表描述關機 API 的新旗標和行為。 MSDN 提供這些 API 和旗標的詳細資料。

API 關機行為
InitiateSystemShutdownEx 一律執行完整關機
InitiateSystemShutdown 一律執行完整關機
InitiateShutdown 使用 SHUTDOWN_HYBRID 旗標執行關機以快速啟動
ExitWindowsEx 使用 EWX_HYBRID_SHUTDOWN 旗標執行關機以快速啟動

區分何時會發生休眠或快速啟動的關機

設備磁碟機會收到通知,以在關機時轉換為 S5 目標電源狀態,而不是 S4 的休眠狀態,這是實際的電源狀態。 這可讓驅動程式在關機後,為快速啟動設定不同的喚醒行為。 在System_Power_State_CoNtext結構中找到目標和有效狀態。

針對大部分裝置,S4 和 S5 喚醒行為之間的差異是在匯流排驅動程式層控制。 如果您實作自己的公車驅動程式,而且需要區分這兩種行為,請連絡 Microsoft 代表以取得其他資訊。 若要提供快速啟動體驗,請遵循下列最佳做法:

  • 平衡 CPU 效能、磁片效能和記憶體容量。

  • 優化 UEFI 讀取路由效能。

  • 確定分葉節點裝置的驅動程式必須快速繼續指導方針。

  • 請確定驅動程式儘快完成其 S0 set-power IRP,以防止其他裝置取得其 S0 set-power IRP。

  • 避免在開機時啟動應用程式,但反惡意程式碼和裝置應用程式除外。

  • 請勿使用 RunOnce 在開機時啟動應用程式。

  • 避免開機路徑中的 Managed 程式碼應用程式。

  • 使用工作排程器延遲啟動非關鍵應用程式。

  • 根據記憶體流失來驗證驅動程式和服務。

  • 只有在絕對必要時,才註冊服務以接收電源管理事件通知。

  • 請確定驅動程式在完成D_IRP之前,不會等候完成其S_IRP。 這樣做可防止其他裝置接收其S_IRPs,這會導致序列化延遲並增加整體暫停時間。

休眠 (S4) 暫停和繼續

在休眠轉換中,記憶體的所有內容都會寫入主要系統磁片磁碟機上的檔案。 此程式會保留 Windows、應用程式和裝置的狀態。 如果合併的記憶體使用量耗用所有實體記憶體,休眠檔案必須夠大,以確保有足夠的空間可儲存實體記憶體的所有內容。 因為資料會寫入到非變動性儲存體,所以 DRAM 不需要維護自我重新整理,而且可以關閉電源。 此行為會產生非常低的電源繪製,類似于處於關閉狀態的電腦。

休眠的使用者案例

這些是執行新式 Windows 版本的電腦需要休眠技術的重要案例:

  • Doze to Hibernate: 系統會保持閒置狀態,並自動轉換成休眠。

  • 重大電池: Windows 會自動休眠電腦,以防止電池電源用盡時資料遺失。

  • 熱條件: 系統達到需要自動關閉系統電源以保護線路的預先定義溫度。

  • 使用者起始: 使用者選取休眠,以以非常最少的電源繪製來儲存目前的使用者狀態。

雖然此清單可能會隨著電腦的需求和功能演進而演進,但預期許多電腦會繼續使用休眠狀態,特別是在無法連線待命時。

休眠階段

休眠階段的圖表

在休眠階段中,Windows 會通知各種元件發生休眠階段,然後儲存使用者的內容和系統狀態。 資料會壓縮並寫入磁片;系統會使用系統上的所有處理器核心來壓縮記憶體中的資料,並在將資料寫入磁片時使用一個處理器。 將所有資料寫入磁片之後,Windows 會通知韌體準備好關閉電源。

韌體通知是寫入睡眠類型暫存器,其中包含 S4 物件中所提供的值,如 ACPI 4、第 4.5 節、表格 4-13 和第 7.3.4 節所定義。 這表示在下次開啟電源時,將會嘗試繼續,而不是完整開機。

繼續階段

繼續階段的圖表

休眠繼續會從韌體 POST 開始,類似于完整開機。 Windows 開機管理員偵測到從休眠繼續是必要的,方法是偵測有效的休眠檔案,並指示系統繼續,還原記憶體的內容和所有架構暫存器。 在休眠繼續的情況下,記憶體的內容會從磁片讀取、解壓縮和還原,使系統處於休眠狀態。 還原記憶體內容之後,裝置會重新開機,而電腦會回到執行中狀態,準備好登入。

請注意,雖然會通知設備磁碟機和服務,但不會重新開機它們;它們會還原到當休眠階段發生時的狀態。

系統記憶體的還原分成兩個階段。 第一個階段是還原核心的最小部分,然後用來完成系統其餘部分的記憶體還原。 第一個階段必須使用單一處理器環境核心來完成。 不過,在還原系統記憶體的最小部分之後,所有處理器核心都可以用來平行處理解壓縮和還原資料,以便繼續的其餘部分,進而大幅加速程式。

根據處理器的功能,適當調整加密/解密演算法的大小,進一步改善此程式。

平行處理優化僅適用于系統可保證其具有可能從可用的最低環境取得的所有資料。 因此,如果新增至損毀傾印堆疊的元件在休眠繼續作業期間使用,則無法使用它,也尚未宣告為該最低環境的一部分。 如果您要建立這類元件,例如損毀傾印篩選驅動程式或使用個別損毀傾印路徑的裝置,請連絡 Microsoft,讓他們可以引導您完成此程式。

韌體 POST

更快速的 POST 時間可將整體時間從電源縮短為可用狀態。 因為 Windows 快速啟動的速度明顯更快,所以 POST 時間可能會成為總開機時間的更顯著比例。 POST 時間需求的其他資訊記載于 Windows 硬體認證需求中。 分析顯示 POST 時間需求可在完全列舉及啟用預先作業系統環境中硬體元件的完整補充平臺上達成。

由於Windows 8,所有電腦都必須根據統一可擴展韌體介面 (UEFI) 規格 2.3.1 或更新版本來寄送其韌體。 由於許多系統是以較舊的舊版韌體設計為基礎,因此有機會將韌體設計優化,以更快速地容納 POST 時間。

透過 UEFI 架構初始化流程的圖表

UEFI 架構會流經數個階段的韌體和平臺初始化。 根據這些定義完善的階段,有幾個設計考慮可能會降低 POST 時間。

安全性 (SEC)

在 SEC 階段中,平臺會執行在 SPI NOR 快閃上儲存之平臺微碼的擷取、解壓縮和驗證。 此時,平臺已初始化 RAM 及其匯流排。 下列清單包含要針對此階段考慮的一些問題:

  • SKU 的特定微碼,還是對多個平臺而言是一般程式碼? 微碼的大小會影響解壓縮傳輸至 RAM,以及驗證。

    請考慮將微碼重構為盡可能小。

  • SPI NOR 快閃匯流排速度可以增加嗎? 許多平臺都支援 SPI NOR 快閃元件的多個時脈速度。 它們通常會以較低的頻率運作 (例如 16 MHz) ,而且可以增加。

    請考慮增加匯流排速度,以減少從 NOR 快閃到 RAM 的微碼傳輸延遲。

  • 平臺是否有足夠的 NOR 快閃? 為了節省成本,許多平臺都是使用最低 NOR 部分所設計,因而產生較高的微碼壓縮,以及解壓縮的更高成本。

  • 請考慮較大的 NOR 快閃元件,以儲存壓縮較少的程式碼。

平衡壓縮、設計和傳輸微碼可能會改善 POST 時間的效能。 在 SEC 結束時,已驗證的微碼會將 UEFI 核心和環境的其餘部分從 NOR 快閃複製到 RAM。

預先 EFI 初始化 (PEI)

核心在 RAM 中之後,平臺會初始化核心,並開始驗證程式代碼、系統資料表和其他元素的完整性。 請考慮設計已針對您的平臺優化的 UEFI 核心,而不是一般非優化的核心。 優化可能包括:

  • 在核心組建期間編譯旗標,以優化記憶體緩衝區

  • 連結至平臺初始化不需要的模組

如需如何優化 UEFI 核心的概念,請參閱韌體設計工具。

驅動程式執行環境 (DXE)

此時,會載入核心 UEFI 驅動程式和協力廠商 DXE 驅動程式。 使用韌體設計工具所提供的工具,擁有者可以識別哪些是效能最低的 DXE 驅動程式,並評估是否可以優化該程式碼。

此階段的另一個考慮是載入 DXE 驅動程式的數目。 平臺應該只載入需要保證開機且不相依于選擇性硬體的驅動程式。 最終設計取決於目標開機選取專案。

(BDS) 開機裝置選取

開機裝置選取是移轉至 Windows 之前平臺初始化的最後一個步驟。 在此步驟中,韌體會決定有哪些開機裝置存在,以及要交出哪些裝置來執行。 仔細設計和優化開機變數會影響轉換至 Windows 開機載入器。

USB 列舉

POST 的 USB 列舉部分可能需要很長的時間。 在Windows 8引進新的變更後,預設開機案例中將不再需要 USB 列舉。 如需其他 POST 時間優化,請連絡您的晶片和韌體廠商。 如果開機順序設定為開機至任何其他路徑,建議列舉 USB,例如在下列案例中:

  • 開機順序有其他較高的選項,例如當 Windows To Go Startup Options 在開機順序頂端插入 USB 類別開機專案時。

  • 設定開機下一個變數,導致使用不同的開機裝置。

  • 開機前一次發生失敗。

應用程式

開機路徑中的傳統型應用程式會影響/關閉轉換和能源效率。 工作管理員會標示具有高影響力的桌面應用程式,並通知使用者一律執行中的傳統型應用程式。 如需詳細資訊,請參閱 啟動應用程式。 我們強烈建議您使用自動維護,並在需要時才執行它們,而不是自動啟動傳統型應用程式。

重要

定義的所有目標都會排除 BIOS 初始化時間。

若要提供絕佳的開啟/關閉體驗,建議電腦符合下表中的目標。

案例 平板電腦 (CS) 敞篷車 Notebook All-in-One
快速啟動 (秒) < 25 <= 15 <= 15 <= 15
Hiberfile 大小 (MB) < 300 <= 300 <= 300 <= 300
待命繼續 (秒) 不適用 <= 7 <= 7 < = 5

計量 單位 目標

透過登錄執行機碼啟動的進程數目

定義為使用執行金鑰在每個開機時啟動的進程總數。 對 (CPU 和磁片) 的開機/關閉資源使用率造成直接影響。

您可以使用泛型事件資料表) ,查看快速啟動追蹤中的一些 ETW 事件 (:

提供者名稱:Microsoft-Windows-Shell-CoreTask: Explorer_ExecutingFromRunKeyOpcode: win:Start

事件欄位 #1 (Command) 提供用來啟動進程的命令列。

count

< 10

快速啟動後/關閉期間的一般優先順序讀取磁片 IO

此計量可以直接從 Windows 評定主控台中的評量結果取得,其底下為:

開機後/關閉 > 磁片 > 使用量 > 總計一般優先順序讀取 (位元組)

MB

< 30

驗證和測試

您可以使用 Windows 評定工具組來改善電腦效能,超過最低需求。 與開啟/關閉體驗相關的 Windows 評定包括:

  • 快速啟動評估

  • 完整開機和關機評估

  • 待命評估

  • 休眠評估

新版的快速啟動和休眠評估包含 休眠檔案診斷 模式。 此模式可協助偵測造成大型休眠檔案大小的驅動程式和應用程式,並偵測未實作多階段繼續的儲存體驅動程式。

記憶體頁面有兩個主要類別,這些頁面會儲存在休眠檔案中,與系統評估有關:驅動程式非分頁集區頁面和應用程式/服務私人工作集區頁面。

新的模式可協助您瞭解哪些軟體元件必須改善記憶體使用量。

工具和技術參考

您可以深入瞭解開啟/關閉體驗,並下載工具來分析這些資源的效能:

資源標題和連結 內容類型 描述
啟動應用程式 發行項 強調啟動應用程式在 Windows 裝置上具有的一些效果,並提供指引給開發人員 (ISV/IHV) 和 OEM,以重新思考啟動應用程式的使用模式,以改善電池使用時間和回應性。
開啟/關閉評定的結果 文件 協助您解譯開/關評量所產生的結果, (開機效能 (快速啟動) 、開機效能 (完整開機) 、待命效能和休眠效能。