次の方法で共有


Windows アプリのパフォーマンスと基本要素の概要

アプリケーションのパフォーマンスと基本要素の向上により、洗練と職人技の感覚が実現される一方で、顧客の時間、コスト、バッテリー切れ、開発作業が削減されます。 アプリの消費電力が少なくなり、バッテリー寿命が向上し、炭素排出量が削減されます。 アプリが、より安価なハードウェアでよりスムーズに実行されます。 顧客の生産性が向上します。

このページでは、Windows アプリケーションのパフォーマンスを測定、理解、調整するためのテクノロジと開発ツールの概要を示します。 UWP アプリを作成する場合は、UWP のパフォーマンスに関するドキュメントもご覧ください。

アプリケーション パフォーマンスの定義と重要性

パフォーマンスは、アプリケーションがシステムのリソースを使用して、設計した処理をどの程度効果的に行うかを示す尺度です。 次のような、プログラムが基になるデバイスとやり取りする方法のさまざまな側面について説明します。

  • CPU 使用率
  • メモリ消費
  • 電力消費量
  • ネットワークとストレージの使用率
  • アニメーションのパフォーマンス

これらのすべてのプロパティには、コストの要素が関連付けられています。たとえば、アプリケーションが使用する CPU の量などです。 ユーザーの帯域幅のどのくらいが消費されますか? アプリケーションのこの特定のページの読み込み速度はどのくらいですか?

ユーザーは、使用するソフトウェアの基本的なプロパティとしてパフォーマンスを期待します。 アプリケーションの応答性を高め、システムのリソースを効率的に使用することを望んでいます。 パフォーマンスが低いアプリケーションはフラストレーションを引き起こし、ユーザー エンゲージメントが低下する可能性があります。 そのため、顧客に最高のエクスペリエンスを提供するには、パフォーマンスを開発ワークフローの通常の部分にすることが重要です。

アプリケーションのパフォーマンスを測定する必要がある場合

アプリケーションのパフォーマンスは、開発プロセスの多くの段階に及ぶ可能性があります。 これは、データ構造の選択から、アプリケーションの構築に選択したテクノロジまで、あらゆることに影響します。 アプリケーションの開発時にはパフォーマンスに留意し、アプリケーションの更新と保守時に定期的なパフォーマンステストを行う計画を立ててください。

パフォーマンス測定にアプローチする方法

アプリケーションのパフォーマンステストに取り組む方法に関する推奨事項を次に示します。

  • アプリケーションに関する知識を活用します。 ユーザーにとって最も一般的なシナリオを理解することで、適切な最適化に時間を費やすことができます。 ユーザーがアプリケーションとやり取りする方法に関するデータを利用できる場合は、これを確認するのに最適なタイミングです。
    • ユーザーはほとんどの時間をどこに費やしていますか?
    • 顧客がソフトウェアを使用して行う最も重要なことは何ですか?
    • アプリケーションのハードウェア要件は何ですか?
  • 最も重要なユーザー シナリオのパフォーマンス目標を設定します。
  • 最適化しようとしている内容について正確に説明します。 CPU ですか? バッテリー。 ネットワーク スループット
  • 測定に使用するツールを選択します。
  • テスト時に科学的な考え方を適用します。 制御された環境でベンチマークを作成します。 次に、変更を行い、変更がアプリケーションの動作にどのように影響したかを確認するために再測定します。
  • テスト環境に回帰テストを追加します。 これにより、パフォーマンス メトリックが時間の経過と同時に低下しないようにします。

相互に結び付くメトリック

通常は分析中にパフォーマンスの 1 つの領域に焦点を当てますが、多くの場合、領域が絡み合っている点に注意してください。 一方の改善は、他の領域の改善に連鎖する可能性があります。

たとえば、電力消費量の修正は、多くの場合、同期の問題です。 メモリ使用量を減らすと、CPU の使用に費やす時間が短縮される可能性があります。 また、1 つの領域に追加のリソースが費やされ、別の領域でより影響を与える改善が生まれる場合もあります。たとえば、メモリ消費量を増やすと、キャッシュによってネットワークまたはストレージの使用率が低下する可能性があります。

変更を行う決定は、顧客にとって最も重要なものによって異なります。

アプリケーションのパフォーマンスを測定するために使用できるツール

Windows アプリケーションのパフォーマンスを測定するために使用できるさまざまなオプションがあります。

どのツールを選択したらいいか分からない場合は、Visual Studio パフォーマンス プロファイラーと Windows Performance Toolkit の比較」を参照してください。

Visual Studio アイコン Visual Studio パフォーマンス プロファイラー

Visual Studio には、アプリケーションを監視し、ソース内の分析情報を得るのに役立つツールが用意されています。 下記のツールにアクセスして、これらのツールを使用して開発環境から直接コードを最適化する方法について学びます。

Windows Performance Analyzer アイコン Windows Performance Toolkit

Windows パフォーマンス レコーダーWindows パフォーマンス アナライザーでは、Windows イベント トレーシング (ETW) を使用して、アプリケーションとシステム全体を詳細に監視、分析できます。 はじめ方については、以下のリンクをご参照ください。

PerfView アイコン PerfView

PerfView は、.NET パフォーマンスの問題の調査用に .NET チームによって作成されたオープン ソースの監視および分析ツールです。 .NETシンボルとマネージド メモリをデコードできるため、マネージド アプリケーションに最適です。

SizeBench アイコン SizeBench

SizeBench は、コンパイル済みのネイティブ コード バイナリ (DLL、EXE、その他の PE ファイル) のサイズを調査、削減するのに役立つユーティリティです。

その他のリソース

ブログとニュース

舞台裏に迫った、パフォーマンスの専門家によって書かれた開発者ブログをお読みください。最適なバージョンのアプリの構築に役立ちます。

コミュニティとサポート

パフォーマンスと持続可能性

パフォーマンス エンジニアリングは、持続可能なソフトウェアの動きと直接交差します。 ほとんどの電力網は、発電するために化石燃料を燃やします。 アプリケーションが PC 上で実行されると電力を消費します。これは 1 人のユーザーに対しては小さいかもしれませんが、ユーザー ベースの拡大に合わせて増大します。

パフォーマンス エンジニアリングと持続可能性がどのように交差するかについて知る必要がありますか? グリーン ソフトウェア エンジニアリングの原則と Microsoft の持続可能なソフトウェアに関するブログをご覧ください。