共用方式為


Windows 應用程式效能與基礎項目概觀

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

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

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

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

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

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

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

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

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

如何進行績效衡量

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

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

錯綜複雜的度量標準

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

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

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

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

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

如果您不確定要選擇哪些工具,請參閱此文章:在 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 可以使用 Windows 事件追蹤 (ETW) 來對您的應用程式和整個系統進行詳細監視和分析。 請參閱下面的連結以了解如何開始。

PerfView 圖示 PerfView

PerfView 是由 .NET 小組建立的一個開放原始碼監視和分析工具,用於調查 .NET 效能問題。 由於它能夠解碼 .NET 符號和受管理的記憶體,因此它是受管理的應用程式的理想選擇。

SizeBench 圖示 SizeBench

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

其他資源

部落格和新聞

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

社群與支援

效能和永續性

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

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