次の方法で共有


.NET Framework のパフォーマンス

優れたパフォーマンスでアプリを作成する場合は、アプリの他の機能を設計する場合と同様に、パフォーマンスを設計して計画する必要があります。 Microsoft が提供するツールを使用してアプリのパフォーマンスを測定し、必要に応じてメモリ使用量、コード スループット、応答性を向上させることができます。 このトピックでは、Microsoft が提供するパフォーマンス分析ツールの一覧を示し、アプリ開発の特定の領域のパフォーマンスに関するその他のトピックへのリンクを示します。

パフォーマンスの設計と計画

優れたパフォーマンスのアプリが必要な場合は、他の機能を設計する場合と同様に、パフォーマンスをアプリに設計する必要があります。 アプリのパフォーマンスクリティカルなシナリオを決定し、パフォーマンス目標を設定し、これらのアプリ シナリオのパフォーマンスを早期および頻繁に測定する必要があります。 各アプリは異なり、パフォーマンスクリティカルな実行パスが異なるため、それらのパスを早期に決定し、作業に集中することで、生産性を最大化できます。

高パフォーマンス アプリを作成するために、ターゲット プラットフォームを完全に理解している必要はありません。 ただし、パフォーマンスの観点から、ターゲット プラットフォームのどの部分がコストがかかるかを理解しておく必要があります。 これを行うには、開発プロセスの早い段階でパフォーマンスを測定します。

パフォーマンスにとって重要な領域を特定し、パフォーマンス目標を確立するには、常にユーザー エクスペリエンスを考慮してください。 起動時間と応答性は、アプリに対するユーザーの認識に影響を与える 2 つの重要な領域です。 アプリで大量のメモリが使用されている場合、ユーザーが遅くなったり、システム上で実行されている他のアプリに影響を与えたり、場合によっては 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 Performance Analyzer 複数のアプリが同じコンピューター上で実行されている場合のアプリのメモリやストレージの使用など、システムの全体的なパフォーマンスを判断するために使用します。 このツールは、Windows 8 用 Windows Assessment and Deployment Kit (ADK) の一部としてダウンロード センターから入手できます。 詳細については、「 Windows パフォーマンス アナライザー」を参照してください。

Windows のイベント トレース (ETW)

ETW は、コードの実行に関する診断情報を取得できる手法であり、前に説明した多くのパフォーマンス ツールに不可欠です。 ETW は、.NET Framework アプリと Windows によって特定のイベントが発生したときにログを作成します。 ETW を使用すると、アプリを再起動せずに運用環境で詳細なトレースを実行できるように、ログ記録を動的に有効または無効にすることができます。 .NET Framework では ETW イベントがサポートされており、ETW は多くのプロファイリングおよびパフォーマンス ツールによってパフォーマンス データを生成するために使用されます。 これらのツールは多くの場合、ETW イベントを有効または無効にするため、それらに関する知識が役立ちます。 特定の ETW イベントを使用して、アプリの特定のコンポーネントに関するパフォーマンス情報を収集できます。 .NET Framework での ETW サポートの詳細については、「 共通言語ランタイムの ETW イベント 」および 「タスク並列ライブラリおよび PLINQ の ETW イベント」を参照してください。

アプリの種類別のパフォーマンス

.NET Framework アプリの種類ごとに、パフォーマンスを評価するための独自のベスト プラクティス、考慮事項、およびツールがあります。 次の表は、特定の .NET Framework アプリの種類のパフォーマンス に関するトピックへのリンクです。

アプリの種類 参照先
すべてのプラットフォーム用の .NET Framework アプリ ガベージ コレクションとパフォーマンス

パフォーマンスに関するヒント
C++、C#、および Visual Basic で記述された Windows 8.x ストア アプリ C++、C#、Visual Basic を使用した Windows ストア アプリのパフォーマンスのベスト プラクティス
Windows プレゼンテーション ファンデーション (WPF) WPF Performance Suite
ASP.NET ASP.NET パフォーマンスの概要
タイトル 説明
.NET Framework アプリケーションでのキャッシュ アプリのパフォーマンスを向上させるためにデータをキャッシュする手法について説明します。
遅延初期化 特にアプリの起動時にパフォーマンスを向上させるために、必要に応じてオブジェクトを初期化する方法について説明します。
確実 サーバー環境での非同期例外の防止に関する情報を提供します。
大規模で応答性の高い .NET Framework アプリの作成 マネージド コードでの C# および Visual Basic コンパイラの書き換えから収集されたパフォーマンスのヒントを提供し、C# コンパイラの実際の例をいくつか示します。