Visual Studio--Profiler剖析器效能

來源:互聯網
上載者:User

Visual Studio 2017 RC的最新文檔,請參看https://docs.microsoft.com/zh-cn/visualstudio/.

你可以使用Visual Studio Profiling工具來分析你的應用程式中的效能問題。本文展示了如何使用採樣資料。

採樣是一種統計學習方法,可以向你展示:在應用中,那一部分做了絕大多數的使用者模型工作。採樣是一個很好的方式用來尋找從哪裡可以加速你的程式。

在指定的時間間隔,採樣方法收集在應用程式中執行的函數的資訊。當你完成一個分析的運行後,被分析的資料的摘要視圖展示了最活躍的函數,稱之為Hot Path,應用程式中的大多數的工作被執行。視圖還列出了執行功能的最獨特的工作,並且提供了一個時間軸的圖表,你可以使用這個表徵圖只考慮其中一部分的抽樣結果。

如果採樣的方法不能給你你想要的結果,其他的分析工具收集方法能夠提供不同的資訊,可能對你有協助,關於這些方法的更多資訊請參看 https://msdn.microsoft.com/en-us/library/ms182374.aspx。


小貼士:

如果你的設定檔的代碼調用Windows函數,你應該確保你有最新的PDB檔案。沒有這些檔案,你的報表檢視將會列出Windows函數的名字,它們往往很神秘並且很難理解的。關於更多的如何確保你有你需要的檔案的資訊請參考:https://msdn.microsoft.com/en-us/library/89axdy6y.aspx。


建立並且運行一個效能會話

為了得到你需要分析的資料,你必須首先建立一個效能會話,然後運行這個會話,效能嚮導可以使你兩者兼顧。

如果你不是分析一個Windows傳統型應用程式或asp.net應用程式,你必須使用其他的某一種分析工具,參看 https://msdn.microsoft.com/en-us/library/mt210448.aspx.

步驟一:為了建立並且運行一個效能會話:

1.在VS中開啟解決方案,設定配置為Release。(在工具列中找到“解決方案配置”,把Debug改成Release)

注意:如果你不是你正在使用的這台電腦的管理員,當你使用profiler的時候你應該以管理員的身份運行VS。(右擊VS的運行表徵圖,然後點擊“以管理員身份運行”)

2.在“調試”菜單中,單擊“效能分析器”

3.單擊“效能嚮導”選項,並單擊“開始”

4.單擊“CPU採樣”選項,單擊“完成”

5.你的應用程式啟動,並且分析器開始收集資料

6.操作功能可能包含效能問題

7.如你通常所做的,關閉應用程式


當你運行完成這個應用後,被分析資料的摘要視圖出現在VS的主視窗中,新的會話表徵圖出現在效能探測器視窗。

步驟二:分析採樣資料

當你完成一個效能會話時,分析報告的摘要視圖出現在VS的主視窗中。

我們建議你從檢查Hot Path開始分析你的資料,函數列表就是做的絕大多數的工作,最後通過使用摘要時間表分析其他函數。你可以查看配置建議和錯誤清單中的警告。

請注意,抽樣方法可能不能給你你所需要的資訊。例如,只有當應用程式正在執行使用者模式代碼時採樣才會被收集。因此,一些功能,例如輸入和輸出操作,是不能被採樣的。分析工具提供了一些方法的集合,能夠使你專註分析一些重要的資料。有關其他方法的更多資訊請參看https://msdn.microsoft.com/enus/library/ms182374.aspx.

圖中的每一個標號地區對應一個過程的步驟:


為了分析採樣資料:

1.在摘要視圖中,Hot Path展示了你的應用程式中具有最高包容樣本的分支。當資料被收集時,這是最活躍的執行路徑。高包容值可以表明該演算法產生的調用樹可以最佳化。發現代碼中的函數中的最短路徑,注意,路徑可以包括系統功能和在外部模組中的系統功能。


(1)Inclusive Samples:表明函數做了多少工作,以及哪些函數調用它。高包容性計數指向函數最昂貴的整體。

(2)Exclusive Samples:表示多少工作是由函數體中的代碼做的,不包括調用它的函數做的工作。高獨家計數表示函數本身的效能瓶頸。

2.單擊函數名稱來顯示分析資料的功能細節視圖。功能細節視圖提供了一個分析資料的圖形化視圖選擇功能,顯示該函數調用的所有函數以及調用該函數的所有函數。

調用函數和被調用函數的塊的大小表示函數調用的相對頻率。

你可以單擊調用函數或被調用函數的名稱,使其顯示所選函數的函數細節。

較低的平面的功能細節視窗顯示功能代碼本身。如果你檢查代碼發現一個最佳化其效能的機會,單擊原檔案的名字,從而在VS的編輯器中開啟該檔案。

3. 繼續你的分析,通過在視圖的下拉式清單中選擇 Summary回到摘要視圖。然後在Functions Doing the Most Individual Work中檢查函數。這個列表顯示具有最高獨家樣本的函數。這些函數中的函數體的代碼執行重要工作,你可以對其進行最佳化。為了進一步分析一個特定的功能,單擊函數的細節視圖來顯示它。

繼續你的調查分析,你可以重新分析被分析資料的一段,通過使用摘要視圖中的時間軸,向你展示被選擇部分的Hot Path和Functions Doing Most Individual Work,關注於時間軸上的一個小的峰值,這可能會揭示出昂貴的調用樹和函數,這些內容在整個分析運行中可能沒有顯示。

為了重新分析一小段,在時間軸中選擇一小段,然後單擊Filter by Selection。


4.分析器還使用一套規則提出改善分析啟動並執行方式,並確定可能的效能問題。如果找到一個問題,在錯誤清單中就會顯示一個警告視窗。

視圖菜單上單擊錯誤清單,然後開啟錯誤清單視窗。

為了看到這個有錯誤的函數,提出了一個警告功能的細節視圖中,雙擊警告。

為了查看詳細資料警告,右擊錯誤,然後單擊顯示錯誤協助


步驟三:修改代碼並重新運行會話

在你發現有一個或多個功能可以進行最佳化時,你可以重複運行分析並比較資料的差異,從而得到你更改後的應用程式的效能。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.