WPFアプリの最適化 Perforator
WPFでは可能な範囲でGPUを活用(ハードウェア レンダリング)しますが、BitmapEffectのように必ずCPUで処理(ソフトウェア レンダリング)されるコンポーネントもあります。また、表示されないくても中間レンダリング(IRT)がCPUで行われていることもあります。最適化するにはソフトウェア レンダリングを最小にすることが重要です。
Windows SDKに含まれている最適化ツールの一つであるPerfotatorを使うと、自分のアプリケーションのレンダリングがどのように行われているのか、フレームレートはいくつかなどを確認でき、ソフトウェア レンダリング部分を紫色にしたり、3D描画をオフにするとパフォーマンスが向上するかなどを試すことができます。
PerforatorはプロファイルしたいWPFアプリケーションを起動してから、C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin\WpfPerf.exeを起動し、Microsoft.WpfPerformance.Perforatorを選択します。すると左側にそのWPFアプリの名前が表示されるので、それを選択します。アプリの名前が現れないときは[Refresh]ボタンを押して最新の情報に更新してみてください。
表示されるデータとオプションの説明を次に示します。
データ |
説明 |
Frame Rate |
フレームレート、毎秒の描画回数 回/秒 |
Dirty Rect Addition Rate |
部分レンダリングの数 |
Software Render Targets |
すべてがソフトウェアでレンダリングされているウィンドウの数 |
Hardware Render Targets |
すべてがハードウェアでレンダリングされているウィンドウの数 |
Maximum SW IRTs per Frame |
1フレームあたりの、ソフトウェアによる中関レンダーターゲット(IRT: Intermediate Render Target)の最大数 |
Maximum HW IRTs per Frame |
1フレームあたりの、ハードウェアによる中関レンダーターゲット(IRT: Intermediate Render Target)の最大数 |
Estimated Video Memory Usage (MB) |
ビデオメモリーの使用量(予測) |
オプション |
説明 |
Draw software rendering with purple tint |
ソフトウェアでレンダリングされている部分を紫色で描画する |
Clear back-buffer before updating |
描画処理の前にウィンドウを黒で初期化する |
Show dirty region update overlay |
部分的に再描画されている部分をオーバーレイで表示 |
Disable dirty region support |
部分的な再描画を無効にする |
Disable Opacity effects |
半透明効果を無効にする |
Disable per-primitive software fallback |
プリミティブ単位のソフトウェアによる代替描画を無効にする |
Disable high-quality image rescaling |
高解像度画像の再スケールを無効にする |
Disable 3D rendering |
3Dレンダリングを無効にする |
Enable Debug Control |
デバッグ制御を有効にする |