perfview特別版是一款由微軟官方推出的性能分析工具,我們可以通過這款軟件來對系統里的所有進程和數據進行監測和分析,從而讓你可以知道這些程序的運行情況,能夠通過這些數據來對電腦系統進行更好的優化。
收集配置數據
PerfView利用Windows事件追蹤,而ETW從Windows 2000 Server以來就一直內置于操作系統中。只是最近才有XPerf和PerfView一類的工具利用ETW數據來解決性能問題。事件數據被收集到一個事件跟蹤日志(ETL)中。根據你想要跟蹤事件的數量和時間的長度,ETL文件可能會非常大。你可以限制這個日志文件的大小,如果空間受限或者你不知道問題何時發生的話,你還可以讓它們循環。默認每毫秒一次的采樣間隔在收集時間內產生了大概百分之十的CPU開支。建議大概5000個樣本(5秒)用于一次代表性配置采樣。
開始一次數據收集有兩種方式,用運行命令啟動一個程序或者用收集命令在計算機范圍內收集數據。這些命令可以由收集下拉菜單下的GUI引發,或者從CLI或腳本中執行“PerfView run”或“PerfView collect”命令。下圖顯示運行命令tutorial.exe時收集數據的過程,tutorial.exe是一個內置的訓練練習。
查看結果
一旦你在些之間針對性能問題收集了數據,你可以用PerfView分析ETL文件。該ETL文件會出現在左邊的窗口,有收集日志或運行命令期間你提供的名字。通過雙擊該RTL文件,十來個獨立的節點會和指代它們內容的名字一起出現。例如,你會在下圖中看到跟蹤信息、程序、事件、CPU堆棧。雙擊各個節點,適當的查看器會打開這些內容。
為了針對一個特定程序分析計算密集型性能問題,你將需要學習要調用的堆棧和函數。這可以通過雙擊左側窗口中的“CPU堆棧”節點完成。接著你會得到提示來選擇你感興趣的程序。最后,該CPU堆棧查看器會在獨立的窗口中打開,如下圖QQ進程的信息 ,你可以確定調用了哪個函數以及它們的頻率。
如果你仔細查看上面的例子,你會發現第一行顯示<<user32!?>>。“!?”代表PerfView不能解析這個模塊名稱。你可以雙擊這個未知模塊名稱并選擇“查找符號”來顯示該模塊名稱。按用戶指南所述配置符號路徑對于解析操作系統函數名稱也許是有必要的。
PerfView是一個便于用戶的工具,可以用來收集和分析ETW數據用于解決配置程序性能數據的問題。這個工具可以快速地顯示為這個程序執行的操作系統函數,了解性能問題可能潛藏的位置。