WPF Performance Suite

Windows SDK には、WPF Performance Suite という Windows Presentation Foundation (WPF) アプリケーション向けのパフォーマンス プロファイリング ツール スイートが含まれます。 WPF Performance Suite を使用すると、WPF アプリケーションの実行時の動作を分析したり、適用できるパフォーマンスの最適化処理を特定したりできます。 WPF Performance Suite には、Perforator およびビジュアル プロファイラーというパフォーマンス プロファイリング ツールが含まれています。 ここでは、WPF Performance Suite の Perforator ツールとビジュアル プロファイラー ツールをインストールして使用する方法について説明します。

このトピックは、次のセクションで構成されています。

  • WPF Performance Suite のインストール

  • WPF Performance Suite の起動

  • Perforator

  • ビジュアル プロファイラー

WPF Performance Suite のインストール

次の手順では、WPF Performance Suite のインストール方法について説明します。

  1. 旧バージョンの Windows Performance Toolkit がインストールされている場合は、アンインストールします。

  2. Windows SDK をインストールします。

    インストール オプションでは、[Common Utilities] (共通ユーティリティ) の [Windows Performance Toolkit] (Windows Performance Toolkit) オプションを選択します。 ダウンロードの詳細については、Windows SDK ダウンロード ページを参照してください。

  3. Windows SDK がインストールされたら、[スタート] ボタンをクリックし、[すべてのプログラム][Microsoft Windows SDK v7.1][ツール] の順にクリックします。

  4. [ツール] で [Install Windows Performance Tool Kit] (Windows Performance Tool Kit のインストール) をクリックします。

    セットアップ ウィザードが表示されます。

  5. 表示される手順に従って Windows Performance Toolkit をインストールします。

    既定では、次の機能がインストールされます。

    • パフォーマンス最適化ツール

    • Windows Performance Toolkit のヘルプ

    • GPUView

    • WPF Performance Suite

WPF Performance Suite の起動

プロファイリングを行うアプリケーションを実行する前に、WPF Performance Suite を起動する必要があります。 WPF Performance Suite を使用するには、ユーザー アカウントに管理者特権が必要です。

次の手順では、WPF Performance Suite の起動方法について説明します。

  1. [スタート] ボタンをクリックし、[すべてのプログラム][Microsoft Windows Performance Toolkit] (Microsoft Windows Performance Toolkit) の順にクリックします。

  2. [WPF Performance Suite] (WPF Performance Suite) をクリックします。

  3. [ユーザー アカウント制御] ダイアログ ボックスが表示されたら、[はい] をクリックします。

    WPF Performance Suite が起動します。

WPF Performance Suite の初回起動時には、[Add Tools] (ツールの追加) ダイアログ ボックスが表示されます。 [Add Tools] (ツールの追加) ダイアログ ボックスで、パフォーマンス プロファイリング ツールを追加できます。 ツールを追加するには、ツールが含まれるアセンブリを選択し、[Scan Assembly] (アセンブリのスキャン) をクリックします。 [ファイル] メニューの [Add Tool] (ツールの追加) をクリックすると、[Add Tool] (ツールの追加) ダイアログ ボックスをいつでも開くことができます。 次の図に [Add Tool] (ツールの追加) ダイアログ ボックスを示します。

[Add Tool] (ツールの追加) ダイアログ ボックス

[ツールの追加] ダイアログ

既定では、WPF Performance Suite には次のパフォーマンス プロファイリング ツールが含まれます。

ツール

説明

Perforator

レンダリング動作を分析します。

ビジュアル プロファイラー

ビジュアル ツリーの要素による WPF サービス (レイアウトやイベント処理など) の使用状況に関するプロファイリングを行います。

[Perforator] (Perforator) チェック ボックスと [Visual Profiler] (ビジュアル プロファイラー) チェック ボックスがオンになっていることを確認し、[OK] をクリックします。

Perforator

Perforator は、WPF アプリケーションのレンダリング動作を分析するためのパフォーマンス プロファイリング ツールです。 Perforator のユーザー インターフェイスには、ダーティな四角形の追加レートやフレーム レートなど、アプリケーションの各部分の特定のレンダリング動作を分析できるグラフのセットが表示されます。 WPF では、ダーティな四角形と呼ばれるレンダリング手法が使用されます。これは、変更された画面の部分だけを新しいレンダリング パスでレンダリングする手法です。 また、Perforator には、レンダリングに関する特定の問題を検出するために使用できるオプションがいくつかあります。 Perforator は、ソフトウェアのレンダリング ターゲットを報告する機能や、グラフの期間を制御するスライダーも備えています。 次の図は、Perforator のユーザー インターフェイスを示しています。

Perforator のユーザー インターフェイス

[ツールの追加] ダイアログ ボックス

Perforator の使用

Perforator を使用するには、分析する WPF アプリケーションを起動します。 アプリケーションが起動したら、[Perforator] (Perforator) タブをクリックします。次に、[Actions] (アクション) メニューをクリックし、[Select Process] (プロセスの選択) をクリックします。 [Select Process] (プロセスの選択) ダイアログ ボックスで、分析するアプリケーション プロセスを選択し、[Select] (選択) をクリックします。 プロセス名とプロセス ID が [Perforator] (Perforator) タブの上部に表示されます。 分析するレンダリング オプションを選択します。 フレーム レートなどの Perforator データ値には、アプリケーションのレンダリング動作が直ちに反映されます。 次の図に例を示します。

アプリケーションとレンダリング オプションが選択された Perforator

オプションが選択されたパーフォレイター メイン ウィンドウ

Perforator のグラフ

WPF アプリケーションのレンダリングを効率化するには、フレーム レート、ダーティな四角形の追加レート、および中間レンダー ターゲットの数を抑えることが重要です。 Perforator には、これらのレベルを監視できる便利なグラフが各種用意されています。

次の表に、各グラフで報告されるメトリックスをまとめます。

履歴グラフ

説明

メモ

Frame Rate (フレーム レート)

アプリケーションが画面にレンダリングされる速度を報告します。

アニメーションのないアプリケーションの場合、0 に近い値になります。 パフォーマンスの高いアプリケーションでのアニメーション中、フレーム レートはモニターのリフレッシュ レート (通常は 60 か 75) に近い値になります。

Dirty Rect Addition rate (ダーティな四角形の追加レート)

WPF でフレームごとに更新する必要がある四角形領域の数を示します。

ダーティな四角形とは、変更された画面の部分だけをレンダリングする手法です。 値が大きい場合は、多数の領域が変更されていることを表します。 アプリケーションの善し悪しとは必ずしも関係ありませんが、アプリケーションの全体的なパフォーマンスと共に考慮する必要のある値です。

SW IRTs Per Frame (フレームあたりの SW IRT)

アプリケーションの 1 フレームのレンダリングに必要な、ソフトウェアの中間レンダー ターゲット (IRT) の数を表します。

IRT は、WPF でデータの割り当てとコピーを行う必要がある、負荷の大きいソフトウェア サーフェイスです。 ソフトウェア IRT の負荷は、ハードウェア IRT の負荷よりも大きくなります。

通常、Visual 上で DrawingBrushVisualBrushOpacity の各プロパティを使用するか、TileBrush 上でタイル モードを使用すると、IRT が発生します。 この数が大きい場合 (5 を超える場合など)、WPF ランタイムがアプリケーションをレンダリングするために大量の処理を実行していることを表します。

ハードウェア アクセラレータをサポートするコンピューターでは、この数は 0 になります。 それ以外の場合、この数は、一部のシーンが低速のソフトウェア パイプラインを使用してレンダリングされることを示します。

HW IRTs Per Frame (フレームあたりの HW IRT)

アプリケーションの 1 フレームのレンダリングに必要な、ハードウェアの中間レンダー ターゲット (IRT) の数を表します。

IRT は、WPF でデータの割り当てとコピーを行う必要がある、負荷の大きいハードウェア サーフェイスです。

通常、Visual 上で DrawingBrushVisualBrush、または Opacity の各プロパティを使用するか、TileBrush 上でタイル モードを使用すると、中間レンダー ターゲットが発生します。 この数が大きい場合 (5 を超える場合など)、WPF ランタイムがアプリケーションをレンダリングするために大量の処理を実行していることを表します。 この場合は、前述の要素を使用するコードのすべての領域を分析する必要があります。

ハードウェア IRT の負荷は、ソフトウェア IRT の負荷よりも小さくなります。

Video Memory Usage (ビデオ メモリ使用量)

テクスチャおよびレンダー ターゲット用に WPF に大量に割り当てられたビデオ メモリを追跡します。 このメトリックでは、ビデオ ドライバーへのメモリ割り当てや、ピクセルおよび頂点シェーダーのコンパイルと読み込みのためのメモリ割り当ては追跡されません。

一般に、テクスチャ メモリの使用可能容量を超過すると、WPF レンダリング ロジックによりソフトウェアが使用されます。また、複数ディスプレイ (マルチモニター) は、アプリケーションに必要なビデオ メモリ容量を増大させます。

Perforator のレンダリング オプションとレンダリングの最適化

Perforator を使用すると、アプリケーションのリアルタイムのレンダリング動作に影響する、さまざまなレンダリング オプションを設定できます。 これらのオプションを設定すると、アプリケーションに問題を引き起こす可能性のあるレンダリング イベントを確認できます。 これらのオプションは、ユーザー インターフェイスの下部で設定できます。

次の図に、Perforator のレンダリング オプションを示します。

Perforator のレンダリング オプション

Perforator 表示オプション

一般に、WPF アプリケーションのパフォーマンスを高めるには、ソフトウェア レンダリングを最小限にとどめ、中間レンダー ターゲットの数を抑える必要があります。 以下のセクションでは、それに役立つ Perforator の機能について説明します。

ソフトウェア レンダリングの回避

WPF のハードウェア レンダリング パイプラインはソフトウェア レンダリング パイプラインよりもかなり高速であるため、ソフトウェアでレンダリングされるアプリケーション ユーザー インターフェイスが少ないほど、アプリケーションでのレンダリングが速くなります。 通常、ソフトウェアで 1 つの領域のレンダリングにかかる時間は、レンダリングされるピクセルの数に比例します。 したがって、ソフトウェア パイプラインを使用した広い領域のレンダリングは慎重に行ってください。 小さい領域であればそれほど問題はありません。

ソフトウェア レンダリングの問題の検出に役立つ Perforator オプションを次の表に示します。

オプション

説明

メモ

Draw software rendering with purple tint (ソフトウェア レンダリングを紫色で描画する)

ソフトウェア レンダリング パイプラインを使用してレンダリングされるすべての領域を、紫色で描画します。 これには、ソフトウェア レンダー ターゲット、ソフトウェア 3D コンテンツ、およびプリミティブごとのソフトウェア フォールバックが含まれます。

WPF のハードウェア レンダリング パイプラインはソフトウェア レンダリング パイプラインよりもかなり高速です。 一般に、ソフトウェア レンダリングの量が多すぎる場合は、問題があります。 この動作を引き起こすのは、過剰な Brush のタイリングや、ビデオ カードのテクスチャ サイズの超過などです。

Draw software rendered bitmap effects with red tint (ソフトウェアでレンダリングされたビットマップ効果を赤色で描画する)

ソフトウェアでレンダリングされたレガシ ビットマップ効果を赤色で描画します。

ソフトウェアでレンダリングされる BitmapEffect クラスは低速なので、回避する必要があります。 .NET Framework 3.5 SP1 で導入された、ハードウェアでレンダリングされる Effect クラスを使用してください。

次の図の PhotoDemo サンプル アプリケーションでは、[Draw software rendering with purple tint] (ソフトウェア レンダリングを紫色で描画する) レンダリング オプションが有効になっています。

紫色で描画されている PhotoDemo

パーフォレイター レンディング オプションを表示する Photodemo アプリケーション

ダーティ領域の監視

WPF はウィンドウの必要な部分だけを更新するため、更新される部分を常に視覚化すると便利です。 アプリケーションでアニメーションなしで領域が更新されることもあります。 更新動作の視覚化に役立つオプションは、次のとおりです。 リモート デスクトップや仮想マシンなど、WPF により新しいビットマップをネットワーク経由で送信する必要があるシナリオでは、不要な更新を見逃すことはできません。 また、不要な更新はノート PC のバッテリ残量に影響を及ぼす可能性があります。

オプション

説明

メモ

Show dirty-region update overlay (ダーティ領域の更新のオーバーレイを表示する)

WPF で画面が更新されるたびに、色の変更で示されるようにします。 これにより、アプリケーションでいつどの領域が再描画されるのかがわかります。

WPF はウィンドウの必要な部分だけを更新するため、ウィンドウの更新される部分を常に視覚化すると便利です。 このオプションは、フレーム レートとダーティな四角形の追加レートがゼロではなく、アプリケーションでビジュアルが変更されない場合に使用します。

Disable dirty region support (ダーティ領域のサポートを無効にする)

変更が行われるたびに、WPF によってウィンドウ全体が再描画されるようにします。

このオプションは、ウィンドウ全体が更新されるようにする場合に役立ちます。 通常は、ウィンドウ内の変更された部分のみが再描画されます。 このオプションを有効にすると、アプリケーションのレンダリングがはるかに遅くなります。

Clear back-buffer before rendering (レンダリングの前にバック バッファーをクリアする)

各描画操作前に、アプリケーション ウィンドウをクリアします。

このオプションは、[Show dirty-region update overlay] (ダーティ領域の更新のオーバーレイを表示する) の代わりに使用します。 このオプションを使用すると最も新しいダーティ領域が表示されますが、ダーティ領域における変更を時間軸に沿って確認する場合は、ダーティ領域の更新のオーバーレイを使用することをお勧めします。

他のパフォーマンス低下の原因の特定

Perforator を使用すると、パフォーマンスに大きな負荷をかける特定の操作を無効にして、その操作がアプリケーションのボトルネックとなっているかどうかを確認できます。 アプリケーションのフレーム レートを監視し、これらのオプションを個別に選択することで、3D レンダリングやイメージの再スケーリングなどの操作によってレンダリングに問題が生じるかどうかを確認できます。 これらのオプションのいずれかを選択したときにフレーム レートが大幅に低下した場合は、操作がアプリケーションのボトルネックとなっている可能性があります。

オプション

説明

メモ

Disable Opacity Effects (不透明度の効果を無効にする)

パフォーマンスに大きな負荷をかける可能性がある、一部の不透明度の使用を無効にします。

一般にこのパフォーマンス上の問題を回避するには、Button などの高レベルのオブジェクトではなく、Brush などの低レベルのオブジェクトに不透明度を設定するようにします。

Disable per-primitive software fallback (プリミティブごとのソフトウェア フォールバックを無効にする)

個々のレンダリング プリミティブに対して、ソフトウェア フォールバックを無効にします。 ソフトウェア中間レンダー ターゲットおよびその他のソフトウェア レンダリングは、無効にできません。

このオプションは、通常は必要ありません。 オフのままにしてください。

Disable high-quality image rescaling (高品質なイメージの再スケーリングを無効にする)

大きいイメージの小さいサイズへの再スケーリングを無効にします。

アプリケーションにおけるイメージの再スケーリングの影響を確認できます。 このオプションをオンにした結果、フレーム レートが大幅に低下した場合は、表示サイズに近いサイズまでイメージをデコードしてください。

Disable 3D rendering (3D レンダリングを無効にする)

すべての 3D レンダリング操作を無効にします。

アプリケーションにおける 3D レンダリング操作の影響を確認できます。

ビジュアル プロファイラー

ビジュアル プロファイラーは、ビジュアル ツリー内の要素に対応した、レイアウト、レンダリング、アニメーションなどの WPF サービスのパフォーマンス プロファイリング ツールです。 このツールのプロファイリング出力を分析することで、パフォーマンスのボトルネックとなる可能性があるアプリケーションのビジュアル要素を特定できます。

ビジュアル プロファイラーは、アプリケーションのビジュアル シーンを構築する基本的なビルド ブロックのコンテキストにおける、パフォーマンスの問題を表示します。 こうしたビルド ブロックには、Button コントロールや TextBlock コントロールなどの高レベルのオブジェクトに加えて、Line 要素や Ellipse 要素などの低レベルのオブジェクトも含まれます。 ビジュアル プロファイラーは、パフォーマンスの問題を、関数名のコール グラフではなくビジュアル オブジェクトの表現で表します。 これは、Windows SDK ツールの UI Spy による情報の表現方法に似ています。 詳細については、「UISpy.exe (UI Spy)」を参照してください。

ビジュアル プロファイラーの使用

ビジュアル プロファイラーを使用するには、分析する WPF アプリケーションを起動します。 アプリケーションが起動したら、[Visual Profiler] (ビジュアル プロファイラー) タブをクリックします。次に、[Actions] (アクション) メニューをクリックし、[Select Process] (プロセスの選択) をクリックします。 [Select Process] (プロセスの選択) ダイアログ ボックスで、分析するアプリケーション プロセスを選択し、[Select] (選択) をクリックします。 プロセス名とプロセス ID が [Visual Profiler] (ビジュアル プロファイラー) タブの上部に表示されます。

WPF のパフォーマンスの問題全体を分析するには、基になる WPF サービスのロールとスコープを理解する必要があります。 これらのサービスには、レイアウト、レンダリング、およびアニメーションが含まれます。 ビジュアル プロファイラーは、WPF サービスがアプリケーション オブジェクト間にどのように割り当てられているかをグラフィカル表示します。 たとえば、ビジュアル プロファイラーでアプリケーション オブジェクトのビジュアル ツリーを表示すると、オブジェクトが使用しているリソースの相対的な量を表すため、さまざまな濃さの赤色の網掛けがオブジェクトにオーバーレイされます。 濃い赤色がオーバーレイされて表示されるオブジェクトは、薄い赤色がオーバーレイされたオブジェクトよりも高い割合でリソースを使用していることを意味します。 さらに重要な点として、ビジュアル プロファイラーは、1 つのオブジェクトが消費する特定の WPF リソース容量の詳細も提供します。

次の図は、ビジュアル プロファイラーのユーザー インターフェイスを示しています。

ビジュアル プロファイラーのユーザー インターフェイス

ビジュアル プロファイラーのユーザー インターフェイス

ビジュアル プロファイラーのユーザー インターフェイスには 8 つの領域があります。

  1. 要素ツリー検索ボックス

  2. ビジュアル要素ツリー

  3. 要素の詳細とプレビュー

  4. 要素の排他的な CPU 使用量の詳細

  5. アプリケーションの CPU 使用量の詳細

  6. キャプチャされたデータのズーム コントロール

  7. 履歴グラフの表示設定

  8. アプリケーションのプレビューとパフォーマンスのオーバーレイに関するオプション

以下のセクションで、各領域について説明します。

要素ツリー検索ボックス

[Element Tree] (要素ツリー) セクションの検索ボックスを使用すると、アプリケーションの要素ツリー内の要素を検索できます。 検索を実行すると、一致したすべての要素が黄色で強調表示されます。 要素は、型または名前で検索できます。

ビジュアル要素ツリー

[Element Tree] (要素ツリー) セクションのツリー コントロールには、アプリケーションのビジュアル要素の型と名前に加えて、サブツリーのサイズとレイアウトの詳細が表示されます。

次に示すのは、ツリー内の要素ラベルの例です。

Border 'border1' (26) 0.02% (I)/ 0.00 % (E) - .24 ms (I) / 0.00 ms (E)

要素ラベルの部分

説明

Border

要素の型。

'border1'

要素の名前。

(26)

サブツリーのサイズ。

0.02% (I)

包括ツリー (要素とそのすべての子孫) の合計サイズの割合。

0.00 (E)

要素のみの合計の割合。

.24 ms (I)

要素とその子孫のレイアウトに要した時間 (ミリ秒単位)。

0.00 ms (E)

要素のみのレイアウトに要した時間 (ミリ秒単位)。

割合と時間について包括的な情報と排他的な情報のどちらを表示するかは、[View] (表示) メニューで制御できます。

要素を右クリックすると、サブツリーを展開または折りたたむことができます。 そのホットパスも展開できます。 ホットパスには、サブツリー内で最も CPU 使用量の多い要素が示されます。

要素の詳細とプレビュー

[Element Information] (要素の情報) セクションには、現在選択されている要素の型と名前 (要素に名前が付けられている場合) が表示されます。 また、[Preview] (プレビュー) セクションに要素のプレビューが表示されます。 最上位の要素を選択すると、アプリケーションのプレビューが表示されます。

要素の排他的な CPU 使用量の詳細

[Element Exclusive CPU Usage] (要素の排他的な CPU 使用量) セクションには、選択した要素によって一定期間に使用された排他的な CPU 時間の履歴グラフと詳細が表示されます。 たとえば、要素がレイアウトの配置に x%、レイアウトの測定に y%、レンダリングに z% の CPU 時間を費やしたことなどがわかります。

アプリケーションの CPU 使用量の詳細

[Application CPU Usage] (アプリケーションの CPU 使用量) セクションには、アプリケーション イベントの履歴グラフと詳細が表示されます。 ビジュアル プロファイラーは、さまざまなアプリケーション イベントをリッスンおよびキャプチャします。 アプリケーション イベントは絶対値と共に一覧表示されます。履歴グラフには、一定期間に各アプリケーション イベントで使用された CPU 時間が異なる色で示されます。 これにより、アプリケーションのレイアウトとレンダリングに費やされた時間を簡単に見分けることができます。

グラフに示されるアプリケーション イベントについて、次の表で説明します。

メモメモ

WPF のメソッド呼び出しに対応するイベントは、メソッド名、かっこで囲まれたクラス名の順に表記されます。たとえば、Tick (TimeManager) は TimeManager.Tick メソッドを表します。

アプリケーション イベント

説明

Unlabeled Time

他のアプリケーション イベントに分類されない WPF での消費時間。WPF 外部のアプリケーションによって費やされたすべての時間を除きます。

RenderMessageHandler (MediaContext)

描画パスが開始されたときに発生します。 このイベントが発生すると、タイム マネージャーは他のイベントの間でタイマーを刻みます。

Rendering Thread

レンダリング スレッドでレンダリング命令を実行するときに発生します。 これは、レンダリングにバインドされたアプリケーションの検出に便利です。

[レイアウト]

測定パス、配置パス、および描画パス中に発生します。

UpdateRealizations

テキスト効果やビットマップ効果の内部ビットマップ表現を更新するときに発生します。

Tick (TimeManager)

アニメーションがタイマーを刻むときに発生します。 このイベントは、アニメーション描画ハンドラーをトリガーする可能性があります。

WPF でオブジェクトをアニメーション化する場合、タイムラインに対して作成された Clock オブジェクトはタイム マネージャーが管理します。 タイム マネージャーは、Clock オブジェクトのツリーのルートであり、そのツリーの時間のフローを制御します。 タイム マネージャーは、WPF アプリケーションごとに自動的に作成され、アプリケーション開発者には表示されません。 タイム マネージャーは、1 秒に何度も "タイマーを刻み" ます。 1 秒あたりのタイマー刻みの実際の回数は、使用可能なシステム リソースに応じて変わります。

AnimatedRenderMessageHandler (MediaContext)

アニメーションの処理と更新の際に発生します。 アニメーションを有効にすると、このハンドラーがアニメーションを処理および更新します。それによりプロパティが変更され、レンダリングが行われます。

Render (MediaContext)

描画パス中に発生します。 このメソッドは、最終的に各要素の OnRender メソッドを呼び出します。全要素に関する OnRender のコストの合計を理解するために便利です。 このイベントは、Visual Studio Profiler (VSP) ファイルの MediaContext.Render メソッドに対応しています。

キャプチャされたデータのズーム コントロール

[Graph Options] (グラフのオプション) セクションには、キャプチャ データのズーム コントロールがあります。 ズーム ウィンドウ ハンドルをドラッグすると、[Element Exclusive CPU Usage] (要素の排他的な CPU 使用量) と [Application CPU Usage] (アプリケーションの CPU 使用量) の履歴グラフの時間軸を変更したり、そのサイズを変更したりできます。

履歴グラフの表示設定

[Graph Options] (グラフのオプション) セクションには、履歴グラフの設定を調整するためのオプション ボタンとスライダーがあります。 オプション ボタンでは、CPU 軸 (縦軸) の表示の種類 (絶対的な重みと相対的な重みのどちらを表示するか) を指定できます。 スライダーでは、グラフに表示する最大値を設定できます。

アプリケーションのプレビューとパフォーマンスのオーバーレイに関するオプション

[Control Options] (コントロール オプション) セクションには、次の操作のための 3 つのトグル ボタンがあります。

  • 最初のトグル ボタンをクリックすると、ビジュアル プロファイラーのデータ収集を停止または開始できます。

  • [Live Preview] (ライブ プレビュー) トグル ボタンをクリックすると、[Preview] (プレビュー) セクションにアプリケーションのライブ プレビューが表示されます。

  • [Overlay Window] (オーバーレイ ウィンドウ) トグル ボタンをクリックすると、選択したビジュアル要素の周囲に黄の境界線が追加されます。 また、CPU 時間の消費量が最も多い要素に赤のオーバーレイが追加されます。 [Element Tree] (要素ツリー) セクションの要素にも同じ赤が使用されます。 赤の輝度は、CPU 使用量に対応しています。

参照

概念

WPF アプリケーションのパフォーマンスの最適化

グラフィックスの描画層

WPF グラフィックス レンダリングの概要

UISpy.exe (UI Spy)

その他の技術情報

What's New for Performance Profiling Tools for WPF (WPF 用のパフォーマンス プロファイリング ツールの新機能)