over 3 years ago

粗略檢視:使用 windos 內建事件檢視器


  1. 開始 -> 輸入 event事件檢視器 -> 啟動 事件檢視器

  2. 依序選擇 應用程式及服務記錄檔 -> Microsoft -> Windows -> Diagnostics-Performance -> Operational -> 右鍵點選 篩選目前的紀錄

  3. 所有事件識別碼 輸入 100確定

  4. 中間的部份就會從最近的時間顯示所有的 開機事件

  5. 雙擊之後切換到 詳細資料

    • 這邊有三個主要數字以毫秒為單位
    • BootTime: 開機完成的總時間
    • MainPathBootTime: 開機到出現桌面的時間,此時 windows 還在載入程式,較緩慢
    • BootPostBootTime: 從出現桌面到載入程式完成的時間,判斷基準是每 100ms 檢查系統是否有 80% 空閒
    • BootTime = MainPathBootTime + BootPostBootTime
    • 這個例子是總共 53秒,31秒花在進桌面之前,22秒花在進桌面之後
    • 這樣就大概有個底,到底是 windows 本身載入緩慢,還是開機啟動的程式太多導致緩慢?
  6. 附帶一提 200 是關機記錄 300 是待機記錄,更多詳細資訊參考 Windows 7or8開機慢了

細部檢視:使用 Windows Performance Tools Kit (WPT)


  1. 如果經過簡單的檢查之後發現是 BootPostBootTime 過長(通常都是因為啟動時程式開太多),又不確定是哪一個造成的,這時候就可以用 WPT 這個工具來直接得到詳細的分析,但因為需要另外安裝軟體,並且測試過程要重新開機數次,建議真的有需要再做
  2. 首先到微軟官方 WPT download page 下載 WPT
    • 這個工具雖然是 win8 之後才出的,不過也相容 win7
  3. 下載後安裝,記得只勾選 Windows 效能工具組,其他的暫時用不到(如圖)
  4. 先準備好關機的動作,沒存檔的工作先存檔
  5. 打開 cmd,輸入 xbootmgr -trace boot -traceFlags BASE+CSWITCH+POWER -resultPath C:\TEMP
    • 電腦會自動重新開機,並將記錄檔存在 C:\TEMP 底下
    • 重開完之後等待訊息視窗倒數結束即可正常使用
  6. 之後在 C:\TEMP\ 底下會看到類似
    • boot_BASE+CSWITCH+POWER_1.etl 以及
    • boot_BASE+CSWITCH_1.cab 等記錄
  7. 這裡我們選擇用最簡單的 GUI 方式觀看記錄,直接點兩下 boot_BASE+CSWITCH+POWER_1.etl 執行
    1. 點選左邊 Computation 的標籤,可以顯示所有程式使用 CPU 的比例
    2. 抓出佔比較高、持續時間較長的程式(如圖,範例為 skype.exe)
    3. 像 chrome 會有一大堆分支,其中一些佔的比例不高,不過總是會有一支主要的佔用比較高的資源
    4. 覺得圖太凌亂的話可以選定某一個項目,然後按右鍵 -> Filter to Selection。清除就選 Clear Filter(如圖)
  8. 我自己抓到比較吃資源,不建議在開機就執行的程式
    • Skype
    • Chrome(有勾選 在背景執行 才會在開機時執行)
    • CCC(AMD 顯示卡附加的 Catalyst 程式)
    • 附帶一提,原本開機要接近 120 秒才完成的,抓出這三個之後現在約 60 秒就結束了(大部分都是 chrome 的關係..)
  9. 開機時並不太耗用資源的程式(白名單)
    • Dropbox(只在開機時佔用不到五秒)
  10. 如果要完整的 log 解說可以參考 Trace Windows 7 boot issues
LOGDOWN 推廣文 →
 
comments powered by Disqus