次の方法で共有


Windows appのパフォーマンスと基礎の概要

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

選択するツールがわからない場合は、「Visual Studio Performance Profiler と Windows Performance Toolkit の間の移動」を参照してください。

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

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

Windows Performance Analyzer アイコン Windows Performance Toolkit

Windows Performance Recorder および Windows Performance AnalyzerEvent Tracing for Windows (ETW) を使用して、アプリケーションとシステム全体の詳細な監視と分析を有効にします。 はじめ方については、以下のリンクをご参照ください。

PerfView アイコン PerfView

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

SizeBench アイコン SizeBench

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

その他のリソース

ブログとニュース

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

コミュニティとサポート

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

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

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

コンテンツのロード マップ

パフォーマンスは、適切なガイダンスがないと、開発プロセスにおける悩みの種になる可能性があります。 アプリの開発者が適切なドキュメントを入手できるようにすることが、より高速なアプリを作成する鍵になります。 以下のロード マップでは、このドキュメント セットに追加される以降のページについて、公開順に詳しく説明します。 気に入ったものや見つからないものが表示される場合は、このページの下部にあるフィードバック リンクを使用して、GitHubにお知らせください。 私たちの目標は、ニーズを満たすアプリのパフォーマンスを実現するための包括的かつ教育的なドキュメント セットをキュレートすることです。ご意見をぜひお寄せください。 Windows アプリケーションのパフォーマンスに関して取り上げてほしいトピックがある場合は、このページの以下のフィードバックを利用して、ご提案ください。

トピック 説明
パフォーマンス領域の概要 CPU、メモリ、GPU などのコンテキストでのパフォーマンスの意味について説明します。
何を測定するかを特定する ワークロード、環境、その他の要因に応じて、パフォーマンスの特定の領域が他の領域よりも重視される場合があります。 このドキュメントにより、何をいつ測定するかを確認してください。
パフォーマンス テスト サイクル パフォーマンス テスト ライフサイクルを順に説明します。これには、テスト環境の設定、結果の分析、製品の改善が含まれます。
さまざまなパフォーマンス ツールについて このドキュメントでは、その他のパフォーマンス ツールを紹介し、それらを使用するためのユース ケースとベスト プラクティスについて説明します
ケース スタディ 一連のエンドツーエンドシナリオと、それらがパフォーマンステストサイクルを通じてたどるプロセス