WPFアプリの最適化 Perforator

Published 30 March 07 03:55 PM | hiroyuk 

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

デバッグ制御を有効にする

Comments

No Comments
Anonymous comments are disabled

About hiroyuk

マイクロソフト㈱エバンジェリスト。北海道大学理学部物理学科卒。リアルタイム3Dグラフィックスを専門とし、グラフィックスやシェーダに関する技術文章を執筆・講演。 DirectX SDK日本語ドキュメントの開発に携わるとともに、Windows Presentation Foundation プログラミング(オーム社)、Game Programming Gemsシリーズ、リアルタイム レンダリング第2版(ボーンデジタル)、Texturing & Modeling, A Procedural Approach などを翻訳・監修、XAMLプログラミング(ソフトバンク クリエイティブ)を執筆。趣味は薪割り。

Search

This Blog

DirectX 情報

Silverlight 情報

Windows 情報

WPF 情報

並列コンピューティング情報

著書

Syndication

Page view tracker