共用方式為


效能分析的初級開發人員指南

這個主題適用於:

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional 

Visual Studio Express

標題適用於 標題適用於 標題不適用於 標題不適用於

本主題說明如何利用 Visual Studio Premium 和 Visual Studio Ultimate 程式碼剖析工具的基本方法,來分析應用程式中的效能問題。 雖然程式碼剖析工具為多種應用程式提供收集自訂效能資料的許多選項,但本主題是關於如何使用 [程式碼剖析精靈] 來收集 Visual Studio 方案的 [取樣] 資料。

注意事項注意事項

如果 [取樣] 未提供所需資料,其他程式碼剖析工具收集方法提供不同類型的有用資訊。 如需這些其他方法的詳細資訊,請參閱 HOW TO:選擇收集方法

本主題內容

基本概念

必要條件

步驟 1:建立及執行效能工作階段

步驟 2:分析取樣資料

步驟 3:修訂程式碼並重新執行分析工具

基本概念

效能工作階段   當您使用 [效能分析工具] 時,會建立「效能工作階段」(Performance Session),其中包含用來收集效能資訊以及一次或多次程式碼剖析執行之結果的組態資料。 在您建立效能工作階段之後,它會出現在 [效能總管] 視窗中。

[效能總管] 及其項目

  1. 程式碼剖析工作階段的名稱。

  2. Targets 資料夾會顯示要在工作階段中進行程式碼剖析的專案或二進位檔。

  3. Reports 資料夾包含來自一次或多次收集回合的程式碼剖析資料檔案。 您可以按一下檔案名稱,然後選取效能資訊的檢視,例如函式呼叫、記憶體配置,以及特定函式的詳細資料。 這些檢視是在 Visual Studio 主視窗中顯示。

取樣方法   [取樣] 是統計程式碼剖析方法,會顯示應用程式中執行最多使用者模式工作的函式。 取樣是尋找加快應用程式執行速度之區域的好起點。

在指定的間隔,[取樣] 方法會收集應用程式中執行之函式的相關資訊。 完成執行程式碼剖析之後,程式碼剖析資料的 [摘要] 檢視會出現在 Visual Studio 主視窗中。 [摘要] 檢視顯示應用程式中執行最多工作的最活躍函式呼叫樹狀圖,稱為 [最忙碌路徑]。此檢視也會列出哪些函式執行最多個別工作,以及提供可用來專注於取樣工作階段特定區段的時間表圖形。

必要條件

在開始程式碼剖析之前,可執行以下項目,以確保您不會遇到不必要的問題。

以系統管理員身分執行   如果您不是所使用之電腦的系統管理員,應該以系統管理員身分執行 Visual Studio,確保您擁有程式碼剖析工具功能的必要權限。 若要這麼做,請按一下 [開始] 按鈕,找出 Visual Studio 應用程式圖示,然後以滑鼠右鍵按一下 [以系統管理員身分執行]。

將現用組建組態設為發行 偵錯組建會在應用程式中插入額外的診斷程式碼,而且不包含編譯器在發行組建中所執行的最佳化。 對應用程式的發行版本進行程式碼剖析,會提供應用程式效能更準確的資料。 若要變更現用組態,請按一下 [建置] 功能表上的 [組態管理員],然後在對話方塊中,選取 [使用中的方案組態] 下方的 [發行]。

取得 Windows 符號檔   如果您對呼叫 Windows 函式的程式碼進行程式碼剖析,應該確定有最新的 .pdb 檔案。 如果沒有這些檔案,報表檢視會列出如密碼般難以理解的 Windows 函式名稱。 如需如何確保您擁有所需檔案的詳細資訊,請參閱 HOW TO:參考 Windows 符號資訊

步驟 1:建立及執行效能工作階段

若要取得需要分析的資料,您必須先建立效能工作階段,然後執行工作階段。 [效能精靈] 讓您執行這兩項作業。

若要建立及執行效能工作階段

  1. 在 Visual Studio 中開啟方案。

  2. 按一下 [分析] 功能表上的 [啟動效能精靈]。

  3. 接受 [CPU 取樣 (建議使用)] 的預設設定,然後按 [下一步]。

  4. 接受預設專案,然後按 [下一步]。

  5. 確定 [在精靈完成後啟動分析] 核取方塊已經選取,然後按一下 [完成]。

    應用程式隨即啟動,而且分析工具會開始收集資料。

  6. 執行可能包含效能問題的功能。

  7. 照常關閉應用程式。

    完成執行應用程式之後,程式碼剖析資料的 [摘要] 檢視會出現在 Visual Studio 主視窗中,而且新工作階段的圖示會出現在 [效能㽪總管] 視窗中。

步驟 2:分析取樣資料

完成執行效能工作階段之後,分析報告的 [摘要] 檢視會出現在 Visual Studio 主視窗中。

建議您先檢查 [最忙碌路徑],接著檢查執行最多工作之函式的清單,最後使用 [摘要時間表] 專注於其他函式,開始分析資料。 您也可以在 [錯誤清單] 視窗中檢視程式碼剖析建議和警告。

請注意,取樣方法可能未提供所需資訊。 例如,只有在應用程式執行使用者模式程式碼時才會收集樣本。 因此,取樣不會擷取某些功能,例如輸入和輸出作業。 程式碼剖析工具提供讓您專注於重要資料的數個收集方法。 如需這些其他方法的詳細資訊,請參閱 HOW TO:選擇收集方法

圖中的每個編號區域與程序中的步驟相關。

用於取樣的摘要報表檢視

若要分析取樣資料

  1. 在 [摘要] 檢視中,[最忙碌路徑] 會顯示應用程式呼叫樹狀圖中具有最多內含樣本的分支。 這是在收集資料時最活躍的執行路徑。 最高內含值指出產生呼叫樹狀圖的演算法可以最佳化。 在程式碼中尋找位於路徑中的最低函式。 請注意,此路徑也會包含系統函式或外部模組中的函式。

    分析工具的 [最忙碌路徑]

    1. [內含樣本] 指出函式及其呼叫的任何函式已完成多少工作。 最高內含計數指出整體耗費最多資源的函式。

    2. [專有樣本] 指出函式主體中的程式碼已完成多少工作,排除其呼叫的函式所完成的工作。 最高專有計數指出函式本身的效能瓶頸。

  2. 按一下函式名稱來顯示程式碼剖析資料的 [函式詳細資料] 檢視。 [函式詳細資料] 檢視會呈現所選取函式之程式碼剖析資料的圖形檢視,並顯示呼叫該函式的所有函式以及所選取函式呼叫的所有函式。

    • 呼叫和被呼叫函式的區塊大小表示函式呼叫或被呼叫的相對頻率。

    • 您可以按一下呼叫或被呼叫函式的名稱,讓它成為 [函式詳細資料] 檢視中選取的函式。

    • [函式詳細資料] 視窗的下方窗格會顯示函式程式碼本身。 如果您檢查程式碼並找到最佳化其效能的機會,請按一下原始程式檔名稱,在 Visual Studio 編輯器中開啟檔案。

  3. 若要繼續分析,請從 [檢視] 下拉式清單中選取 [摘要] 返回 [摘要] 檢視。 然後檢查 [執行最多個別工作的函式] 中的函式。 此清單顯示含有最多專有樣本的函式。 這些函式的函式主體中的程式碼執行相當多的工作,您或許可以對它最佳化。 若要進一步分析特定函式,請按一下函式名稱,將它顯示在 [函式詳細資料] 檢視中。

    執行最多工作的函式清單

    若要繼續調查程式碼剖析執行,可以使用 [摘要] 檢視中的時間表,從選取的區段顯示 [最忙碌路徑] 和 [執行最多個別工作的函式],重新分析程式碼剖析資料的某個區段。 例如,專注於時間表的較小尖峰,可能會顯示整個程式碼剖析執行分析中未顯示的高度耗費資源之呼叫樹狀圖和函式。

    若要重新分析某個區段,請在 [摘要時間表] 方塊內部選取區段,然後按一下 [依選取範圍篩選]。

    效能摘要檢視時間表

  4. 分析工具也會使用一組規則來建議改善程式碼剖析回合的方式,並且識別可能的效能問題。 如果找到問題,就會在 [錯誤清單] 視窗中顯示警告。 若要開啟 [錯誤清單] 視窗,請在 [檢視] 功能表上,按一下 [錯誤清單]。

    • 若要查看引發警告的函式,請在 [函式詳細資料] 檢視中,按兩下該警告。

    • 若要檢視有關警告的詳細資訊,請以滑鼠右鍵按一下錯誤,然後按一下 [顯示錯誤說明]。

步驟 3:修訂程式碼並重新執行工作階段

在找到並最佳化一個或多個函式之後,您可以重複執行程式碼剖析並且比較資料,識別對應用程式效能的變更所帶來的差異。

若要修訂程式碼並重新執行分析工具

  1. 變更程式碼。

  2. 若要開啟 [效能總管],請按一下 [檢視] 功能表上的 [其他視窗],然後按一下 [效能總管]。

  3. 以滑鼠右鍵按一下 [效能總管] 中要重新執行的工作階段,然後按一下 [啟動並啟用程式碼剖析]。

  4. 在重新執行工作階段之後,另一個資料檔案會加入至 [效能總管] 中此工作階段的 [報告] 資料夾。 選取原始和新的程式碼剖析資料,以滑鼠右鍵按一下選取範圍,然後按一下 [比較效能報告]。

    新視窗隨即開啟並顯示比較結果。 如需如何使用比較檢視的詳細資訊,請參閱 HOW TO:比較程式碼剖析工具資料檔案

請參閱

概念

使用程式碼剖析工具分析應用程式效能

程式碼剖析工具入門

其他資源

概觀 (程式碼剖析工具)