如果您想要建立效能絕佳的應用程式,您應該設計並規劃效能,就像設計應用程式的任何其他功能一樣。 您可以使用 Microsoft 所提供的工具來測量應用程式的效能,並視需要改善記憶體使用量、程式代碼輸送量和回應性。 本主題列出Microsoft提供的效能分析工具,並提供涵蓋應用程式開發特定領域效能的其他主題連結。
設計及規劃效能
如果您想要執行良好的應用程式,您必須將效能設計到應用程式中,就像設計任何其他功能一樣。 您應該判斷應用程式中的效能關鍵性案例、設定效能目標,以及儘早且經常地測量這些應用程式案例的效能。 因為每個應用程式都不同,而且具有不同的效能關鍵執行路徑,因此儘早判斷這些路徑,並專注您的工作,讓您將生產力最大化。
您不需要完全熟悉目標平臺,即可建立高效能應用程式。 不過,您應該了解目標平臺的哪些部分在效能方面成本高昂。 您可以藉由在開發程式中早期測量效能來執行此動作。
若要判斷效能和建立效能目標的關鍵區域,請務必考慮用戶體驗。 啟動時間和回應性是影響使用者對應用程式的看法的兩個關鍵領域。 如果您的 app 使用大量記憶體,可能會在使用者看來顯得緩慢,或影響系統上執行的其他應用程式的性能,某些情況下,還可能無法通過 Windows 市集或 Windows Phone 市集的提交流程。 此外,如果您判斷出哪些部分的程式碼執行頻率較高,您可以確保這些部分的程式碼得到充分優化。
分析效能
在整體開發計劃中,在開發期間設定點,您可以在其中測量應用程式的效能,並將結果與您先前設定的目標進行比較。 在預期使用者擁有的環境和硬體中測量您的應用程式。 藉由早期並頻繁地分析應用程式的效能,您可以變更架構決策,這樣一來就能在開發週期後期避免高昂的修正成本。 下列各節說明可用來分析應用程式的效能工具,並討論這些工具所使用的事件追蹤。
效能工具
以下是您可以搭配 .NET Framework 應用程式使用的一些效能工具。
工具 | 說明 |
---|---|
Visual Studio 效能分析 | 用來分析將部署到執行 Windows作系統之電腦的 .NET Framework 應用程式的 CPU 使用量。 開啟專案後,您可以從 Visual Studio 中的 [ 調試 ] 功能表中取得此工具。 如需詳細資訊,請參閱 效能總管。 注意: 以 Windows Phone 為目標時,請使用 Windows Phone 應用程式分析(請參閱下一列)。 |
Windows Phone 應用程式分析 | 用來分析 Windows Phone 應用程式中的 CPU 和記憶體、網路資料傳輸速率、應用程式回應性和電池耗用量。 安裝 Windows Phone SDK 之後,此工具可從 Visual Studio 中 Windows Phone 專案的 [偵錯] 功能表取得。 如需詳細資訊,請參閱 Windows Phone 8 的應用程式分析。 |
PerfView | 使用來識別 CPU 和記憶體相關的效能問題。 此工具使用 Windows 事件追蹤(ETW)和 CLR 分析 API,提供進階的記憶體和 CPU 調查能力,並且提供有關垃圾回收和即時編譯(JIT)過程的資訊。 如需如何使用 PerfView 的詳細資訊,請參閱 部落格文章。 |
Windows 效能分析器 | 使用來判斷整體系統效能,例如當多個應用程式在同一部計算機上執行時,應用程式的記憶體和儲存使用方式。 此工具可從下載中心取得,做為適用於 Windows 8 的 Windows 評定及部署套件 (ADK) 的一部分。 如需詳細資訊,請參閱 Windows Performance Analyzer。 |
Windows 事件追踪系統(ETW)
ETW 是一種技術,可讓您取得有關執行程式代碼的診斷資訊,對於先前提及的許多效能工具而言非常重要。 ETW 會在 .NET Framework 應用程式和 Windows 引發特定事件時建立記錄。 使用 ETW,您可以動態啟用和停用記錄,以便在生產環境中執行詳細的追蹤,而不需要重新啟動您的應用程式。 .NET Framework 提供 ETW 事件的支援,而許多分析與效能工具都會使用 ETW 來產生效能數據。 這些工具通常會啟用和停用 ETW 事件,因此熟悉這些工具相當有幫助。 您可以使用特定的 ETW 事件來收集應用程式特定元件的相關效能資訊。 如需 .NET Framework 中 ETW 支援的詳細資訊,請參閱 Common Language Runtime 中的 ETW 事件 和 工作平行連結庫中的 ETW 事件和 PLINQ 中的 ETW 事件。
依應用程式類型的效能
每種 .NET Framework 應用程式類型都有自己的最佳做法、考慮和工具來評估效能。 下表連結到特定 .NET Framework 應用程式類型的效能主題。
應用程式類型 | 看! |
---|---|
適用於所有平臺的 .NET Framework 應用程式 |
Garbage Collection and Performance (記憶體回收與效能) 效能秘訣 |
以 C++、C# 和 Visual Basic 撰寫的 Windows 8.x 市集應用程式 | 使用 C++、C# 和 Visual Basic 的 Windows 市集應用程式效能最佳做法 |
Windows Presentation Foundation (WPF) | WPF 效能套件 |
ASP.NET | ASP.NET 效能概觀 |
[相關主題]
標題 | 說明 |
---|---|
.NET Framework 應用程式中的快取 | 說明用於快取數據以提升應用程式效能的技術。 |
延遲初始化 | 描述如何視需要初始化物件,以改善效能,特別是在應用程式啟動時。 |
可靠性 | 提供有關防止伺服器環境中異步例外狀況的資訊。 |
撰寫大型回應式 .NET Framework 應用程式 | 提供在 Managed 程式代碼中重寫 C# 和 Visual Basic 編譯程式所收集的效能秘訣,並包含來自 C# 編譯程式的數個實際範例。 |