共用方式為


Windows app 效能與基礎概述

提高應用程式的效能和基礎項目使其給人一種精緻和工藝的感覺,同時節省客戶的時間、金錢、電池壽命和開發工作量。 您的應用程式將消耗更少的電量,進而延長電池壽命並減少碳排放。 應用程式在較便宜的硬體上執行得更順暢。 您的客戶的生產力增加。

本頁概述了用於測量、瞭解和精進 Windows 應用程式效能的技術和開發工具。 如果您要撰寫 UWP 應用程式,請務必也請參閱 UWP 效能文件。

什麼是應用程式效能以及為什麼它很重要?

效能是評估應用程式如何有效利用系統資源完成預期功能的指標。 它涵蓋了程式與底層裝置互動的不同面向,包括:

  • CPU 使用量
  • 記憶體耗用量
  • 功耗
  • 網路與儲存利用
  • 動畫表現

這些屬性都有成本元素:例如,我的應用程式使用多少 CPU? 它會消耗使用者多少頻寬? 我申請的這個特定頁面載入速度有多快?

使用者期望效能是他們所使用的軟體的基本特性。 他們希望應用程式能有反應性,並有效利用系統資源。 表現不佳的應用程式會造成挫折感,進而降低使用者參與度。 因此,為了為客戶提供最佳體驗,將效能納入開發工作流程的常規性至關重要。

何時應該衡量應用程式效能?

應用程式效能可以跨越開發流程的多個階段。 它影響從你選擇的資料結構到你用來建置應用程式的技術。 在開發應用程式時,請考慮效能,並規劃定期進行效能測試,作為更新與維護應用程式的一部分。

如何進行績效衡量

以下是一些關於如何測試應用程式效能的建議。

  • 善用你對申請的了解。 了解用戶最常見的情境,將有助於你明智地花時間優化正確的項目。 如果你有用戶如何與應用程式互動的數據,現在是檢視的好時機。
    • 你的用戶大部分時間都花在哪裡?
    • 客戶使用您的軟體會做哪些最重要的事情?
    • 你的應用程式硬體需求是什麼?
  • 為你最重要的使用者情境設定效能目標。
  • 要明確說明你想要優化的目標。 是 CPU 的問題嗎? 電池? 網路吞吐量?
  • 選擇你將使用來進行測量的工具。
  • 測試時要用科學的思維。 在受控環境中建立基準。 接著,進行你的變更,並重新衡量你的變更如何影響應用程式的行為。
  • 在你的測試環境中加入迴歸測試。 這樣可以確保你的績效指標不會隨時間退步。

錯綜複雜的度量標準

雖然你通常會在分析中專注於某一表現領域,但要注意這些領域往往相互交織。 一項的進步可以連鎖反應到其他方面的進步。

例如,解決功耗問題常常是同步問題。 減少記憶體使用率可以減少使用 CPU 的時間。 也有些情況是,在某一領域投入額外資源,卻能帶來其他領域更顯著的改善——例如,增加記憶體使用率可以透過快取降低網路或儲存利用率。

決定是否做出改變,取決於對你的客戶最重視什麼。

我可以使用哪些工具來測量應用程式的效能?

有各種不同的選項可用來測量 Windows 應用程式的效能。

如果你不確定該選擇哪些工具,可以參考這篇文章:Choosing Between Visual Studio Performance Profiler 與 Windows Performance Toolkit

Visual Studio Icon Visual Studio 效能分析器

Visual Studio 提供工具,幫助你監控應用程式並在原始碼中提供洞察。 請造訪以下資源,了解如何使用這些工具以直接在開發環境中優化您的程式碼。

Windows Performance Analyzer 圖示 Windows Performance Toolkit

Windows Performance RecorderWindows Performance Analyzer 可透過 事件追蹤 for Windows (ETW),對您的應用程式及整個系統進行詳細監控與分析。 請參考以下連結了解如何開始使用。

PerfView 圖示 PerfView

PerfView 是由 .NET 團隊開發的open source監控與分析工具,用於調查 .NET 效能問題。 由於其能解碼 .NET 符號與管理記憶體,是管理應用的理想選擇。

SizeBench 圖示 SizeBench

SizeBench 是一個公用程式,可協助您調查並減少已編譯的原生程式碼二進位檔 (DLL、EXE 和其他 PE 檔案) 的大小。

其他資源

部落格和新聞

透過由我們的效能專家撰寫的開發人員部落格深入幕後,使您得以建立最佳的應用程式版本。

社群與支援

效能和永續性

效能工程與永續性軟體運動直接交叉結合。 大多數電網燃燒化石燃料來發電。 當您的應用程式在 PC 上執行時,它消耗的累增電量對於單一使用者來說可能很小,但是會隨著使用者群的成長而增加。

有興趣了解效能工程如何與永續性發展結合嗎? 請參閱 綠色軟體工程的原則 和Microsoft的 永續性軟體部落格

我們的內容藍圖

如果沒有正確的指導,效能可能會成為開發過程中一個棘手的部分。 確保應用程式開發人員可以使用正確的文件,是建立更快速的應用程式的關鍵。 下面的藍圖詳細介紹了要新增到此文件集的下一頁,以及它們的發佈順序。 如果你看到喜歡或缺少的部分,請透過本頁底部的回饋連結在 GitHub 告訴我們! 我們的目標是為符合您的需求的應用程式效能策劃一套全面且具有教育意義的文件集,因此我們很樂意聽取您的意見。 歡迎在下面提交對此頁面的意見反應,以及您希望看到的有關 Windows 應用程式效能的涵蓋內容的建議。

主題 說明
效能方面的簡介 在 CPU、記憶體、GPU 等的背景下,有關效能意義的描述。
確定要測量的內容 根據您的工作負載、環境和其他因素,某些效能方面可能比其他方面更受關注。 透過本文件了解測量內容和測量時間
效能測試週期 與我們一起逐步執行效能測試生命週期,包括設定測試環境、分析結果和改進產品
瞭解不同的效能工具 本文件將介紹更多的效能工具,並介紹使用它們的使用案例和最佳做法
案例研究 一系列端到端案例及其在效能測試流程中的旅程