フレーム統計情報の分析
フレーム統計情報は、1 つの フレームのレンダリング中に発生したイベント (描画呼び出しなど) の回数をカウントしたり、レンダリングされるフレーム内でのイベントの実行時間を測定したり、実験全体の実行中に累積カウントを記録したりした結果をフレーム後に示した値です。フレーム統計情報を使用すると、次のことが可能です。
- フレーム間のパフォーマンスを比較して、パフォーマンスの低いフレームを検出する。
- 1 つのフレーム内でのパフォーマンスの問題を特定する。
フレーム間のパフォーマンスの比較
PIX を使用してパフォーマンスの低いフレームを見つけるための、非常に簡単な方法が 2 つあります。
- タイムライン ビューを使用すると、すべてのフレームの CPU 処理時間を、視覚的にすばやく比較できます。
- イベント ビューを使用すると、フレームごとの 1 秒あたりのフレーム数 (FPS) の計算値を比較できます。
タイムライン ビューを使用した低速フレームの特定
タイムライン ビューには、CPU で各フレームの処理に要した時間が表示されます。
たとえば、実験全体での CPU 負荷が表示されます。
図形 1. 全フレームの CPU 処理時間の表示
ズーム ボタンを使用すると、水平軸を拡大して、個々のフレームをより明確に表示できます。たとえば、この例では、多数の異なるフレームが表示されています。CPU の消費時間が異なるフレームは、矢印で示されています。
図形 2. 個々のフレームが表示されるように拡大された、CPU の負荷を示すビュー
- リソースの作成や読み込みを行う低速のスタートアップ フレーム
- 平均的な高速フレーム
- 1 行に縮小される超高速フレーム
イベント ビューを使用した低速フレームの特定
イベント ビューには、カウンター統計情報が表形式で表示されます。低パフォーマンスのフレームも、カウンター データから直接確認できます。
低速フレームの特定に最も効果的なカウンターは、1 秒あたりのフレーム数を示す (FPS) カウンターです。この統計情報は、実行時間カウンターから導出されたものであり、CPU でのフレームのレンダリング速度が示されます。速度を示すすべての統計情報と同様、高い数字は高速にレンダリングされたフレームを示し、低い数字は低速フレームを示します。したがって、通常、パフォーマンスが低いフレームでは、FPS 値が非常に低くなります (そのような場合は、通常、実行時間の値が非常に高くなります)。
図形 3. イベント ビューの使用
通常、イベント ビューの統計表では、低パフォーマンスのフレームを簡単に特定できます。ただし、実験によって大量のデータがキャプチャーされた場合、分離された低速フレームを特定することは、容易ではありません。そうした作業を簡単にするには、イベントの一覧をカンマ区切り (CSV) ファイルにエクスポートして、Microsoft Excel などのスプレッドシート プログラムで表示できるようにします。スプレッドシート プログラムを使用すると、FPS または実行時間 (あるいは、その他の有効な統計情報) を基準にして、イベント リストを並べ替えられます。これは、収集された大量のデータの中から最もパフォーマンスの低いフレームを特定するために役立ちます。対応する EID (イベント ID) を参照すれば、PIX 内でフレームについてさらに詳しく調べることができます。
CSV ファイルへのエクスポートによる低パフォーマンスのフレームの特定
- [ファイル](File) メニューの [Export to CSV] をクリックします。
- 表示された [名前を付けて保存](Save AS) ダイアログ ボックスで、作成する CSV ファイルのパスとファイル名を指定し、[保存](Save) をクリックします。
- CSV ファイルを、Microsoft Excel などのスプレッドシート プログラムで開きます。
- スプレッドシートを、FPS 列を基準にして、昇順に並べ替えます。
- 最もパフォーマンスの低いフレームの EID 番号を書き留めます。
- PIX で、[編集](Edit) メニューの [Go To Event] をクリックします。または、Ctrl キーを押しながら G キーを押すか、イベント ビュー ツール バーで [EID] をクリックします。
- [Go to Event] ダイアログで、パフォーマンスの低いフレームの EID 番号を入力して [OK] をクリックします。
フレーム内でのパフォーマンス分析
高速フレームと低速フレームを特定した後で、速度の遅いフレームが終了するまでに時間がかかる理由を把握したい場合があります。
- タイムライン グラフを使用すると、フレーム内で発生したことを詳しく示すカウンターが表示されます。
- また、ヘッドアップ表示 (HUD) 機能を使用すると、タイムライン グラフの曲線がアプリケーション上にリアルタイムでオーバーレイされます。
タイムライン グラフの使用によるカウンターの表示
以下のタイムライン ビューでは、[FPS] カウンターが表示されるように選択されています。このビューでは、フレーム レートが大きく変動していることがわかります。[Number of DIP calls] カウンターが含まれていると、これら 2 つのイベントの関係がより明確になります。つまり、アプリケーションによる DIP 呼び出しの回数が多いほど、フレーム レートが遅くなります。
図形 4. タイムライン ビューでのグラフの使用
FPS カウンターと一緒にその他のカウンターもタイムライン ビューで表示し、考えられる低パフォーマンスの原因を特定することができます。
注 最初のカウンターの種類は、イベント ビューのイベント テーブルの任意のセルをダブルクリックして選択できます。これにより、タイムラインではそのセルを含む列の最初のカウンターの型を変更し、その列に含まれるデータをグラフ表示します。
HUD の使用によるカウンターの表示
実験を実行するときに、ヘッドアップ表示 (HUD) を有効にして、カウンターをリアルタイムで表示し、アプリケーションの表示ウィンドウにオーバーレイすることができます。
図形 5. HUD カウンター
HUD によって、実験の実行中におけるカウンターの変化を監視できます。これは、コントローラーを使用してシーンを移動するなど、ユーザーが条件を変更したためにパフォーマンスが低下した場合に特に有効です。
HUD は特定の状況でパフォーマンスの問題が発生したことを確認する方法として有効ですが、実験によってキャプチャーに関する統計情報を集め、その情報に基づいてアプリケーションをより注意深く分析することも可能です。