1、下載和安裝
進入http://www.microsoft.com/whdc/system/sysperf/perftools.mspx可以看到WPT有3個版本,大家可以根據自己的CPU類型選擇下載相應的版本。WPT的安裝非常簡單,依據向導即可完成。其默認的安裝目錄是C:Program FilesMicrosoft Windows Performance Toolkit,安裝完成后在“開始”菜單的“所有程序”下創建相應的工具快捷方式。(圖1)

2、啟動性能分析
Vista用戶往往比較關注其啟動的速度,我們可以用WPT收集系統啟動信息,然后進行性能分析找到影響系統啟動的因素,最后采取相應的優化措施。
1).啟動信息收集
收集系統啟動信息,需要以管理員身份在命令行下運行相應的WPT工具。首先執行“開始→所有程序→附件”,右鍵“命令提示符”選擇“以管理員身份運行”打開一個命令提示符,然后定位到WPT的安裝目錄輸入命令“xbootmgr.exe -trace boot”,命令執行后Vista會自動重啟,收集相關的啟動信息。重啟完成后,會在WPT的安裝目錄下生成一個名為boot_BASE+CSWITCH_1.etl的日志文件。這個文件記錄了筆者的Vista系統啟動的相關信息。(圖2)

2).啟動性能分析
以管理員身份運行cmd,然后定位到WPT安裝目錄輸入命令“xperfview boot_BASE+CSWITCH_1.etl”,調用WPI工具包中的xperfview對啟動信息進行分析。
(1).CPU相關
從圖3可以非常形象地看到在Vista啟動的過程中各個時間段的CPU的利用率。粗略來看,筆者的Vista在啟動過程中CUP的利用率逼近50%,可見CPU的性能是致使Vista啟動時間達到300秒之多的一個重要因素。需要說明的是筆者的CPU是P4-2.4Mhz,而且是在虛擬機上測試,如果在真實的物理機上測試CUP的利用率會低很多。(圖3)

(2).Disk相關
Disk I/O圖表顯示的是系統啟動過程中磁盤讀寫情況,其中紅色是讀情況,藍色是寫情況。這對于我們理解Vista系統啟動過程非常有幫助,可以看到系統啟動主要以讀為主,并且讀寫操作是呈波浪變化的。我們可以打開I/O Counts下拉列表,勾選相應的項進行單項或者多項查看。(圖4)

Disk Utilization圖表中可以查看系統啟動過程中各個時刻的磁盤利用率。可以看到在系統啟動最初磁盤利用率最大幾乎達到100%,可見Vista在啟動中非常復雜頻繁的磁盤操作。(圖5)
#p#副標題#e#
(3).process相關
Process Lifetimes圖表是xperf中非常精彩的一個部分,從圖6中我們可以看到Vista啟動中都啟動了哪些進程,以及各個進程啟動的先后順序和各自的生命周期。通過這個圖表我們就能非常形象地了解Vista啟動的具體細節。可以看到Idle和System是Vista最開始啟動的系統態進程,并且貫穿了系統啟動的始終。而真正的啟動是從smss.exe這個用戶態進程開始的,在它啟動之前系統準備了將近80秒,換句話說,運行在內核態的各種驅動程序,包括Windows內核和執行體用了80多秒才完成啟動子系統之前的初始化動作,這個時間花費的也太長了。(圖6)

由于初始化Windows內核和執行體等動作用了80多秒,這個非常的不正常,因此我們需要看看在這80秒內的詳情。在Disk Utilization by process里面,選擇0-80秒這個時間段,然后點擊鼠標右鍵,選擇 Detail Graph,會出現圖7,可以看到C盤開始部分的訪問頻率非常的高。(圖7)

如果需要更細致的數據分析我們可以在Disk Utilization by process里面,還是選擇0-80秒這個時間段:點擊鼠標右鍵,選擇Summary Table,xprefview 會顯示如圖8所示的報告,這個報告對于分析性能分析來說,會顯得會更為直觀一點。這張圖表給了我們一個非常詳細的性能分析和解釋數據,在0-80秒時間內,system進程花費了36669986.033 us的時間,可以非常直觀地看到Vista在處理各個項目中所花費的時間,比如處理WindowswinsxsManifests和MFT表的是花費的時間就比較多。我們就可以根據這些分析進行Vista啟動的優化,比如清除Manifests中無用的文件已經卸載沒用的字體文件等。另外,根據WPT給出的數據初步判斷:開機慢的原因和文件IO速度變慢是相關的。而影響文件IO速度慢的原因有很多,在前80秒內,由于沒有任何的用戶態進程介入,因此造成IO速度慢的原因主要是因為磁盤碎片導致的,也有可能是由于硬盤壞道導致的。加快MFT的處理時間,同時減小碎片數量,就能夠為系統啟動提速。(圖8)

(4).Services相關
Services圖表詳細顯示了系統啟動中各個服務的啟動順序和時間等信息。可以看到服務啟動是在核心態進程啟動完成,第一個用戶態進程smss.exe啟動后才開始的。第一個啟動的服務器是PlugPlay,由于虛擬機沒有安裝殺毒軟件,如果有殺毒軟件的話,我們可以看到殺毒軟件的服務到底在什么時候啟動,是從何時開始對系統實施保護的。(圖9)

(5).Winlogon相關
我們知道WinLogon.exe是Windows NT登陸管理器,它用于處理你系統的登陸和登陸過程,該進程在系統啟動過程中非常重要。在Winlogon圖表中可以看到其在Vista啟動過程中的作用范圍,以及與其相關的技術細節。(圖10)

總結:利用WPT對Vista進行啟動分析是非常有益的,不僅能夠能夠準確定位影響系統啟動的因素,而且對于我們理解Vista的啟動原理也大有裨益。其實WPT是一款面向高端的系統檢測工具,除了可以進行系統的啟動檢測外,還有更多的用途。希望大家深入挖掘,利用WPT的強大功能對Vsita有更深入的認識。


