6

約 10fps に低下するアプリケーションを入手しました。xperf でプロファイリングしたところ、アプリが CPU の 20% しか使用していないことが示されました。どのメソッドも、その 20% を予想以上に使用していませんでした。

これは、fps が大幅に低下したのは、グラフィック カードがフレームのレンダリングに追いつけず、追いつく間にプログラムが停止したためであることを示しているようです...

フレーム レートの向上を試みることができるように、グラフィック カードの動作をプロファイリングし、プログラムが速度を落とすように指示していることを特定する方法はありますか?

4

5 に答える 5

7

グラフィックのデバッグ/プロファイリングについては、NvidiaPerfHUDをお試しください

NVIDIA PerfHUDは、Direct3Dアプリケーション向けの強力なリアルタイムパフォーマンス分析ツールです。

「GPUPerfStudio」と呼ばれるATIソリューションもあります

GPU PerfStudioは、DirectX 9、DirectX 10、およびOpenGLアプリケーションのグラフィックパフォーマンスの調整を支援するように設計されたリアルタイムのパフォーマンス分析ツールです。GPU PerfStudioは、非常に柔軟なプロットおよび棒グラフメカニズムを使用して視覚化できるリアルタイムAPI、ドライバー、およびハードウェアデータを表示します。プロファイルされるアプリケーションは、ローカルまたはネットワーク経由でリモートで実行される可能性があります。GPU PerfStudioを使用すると、開発者は主要なレンダリング状態をリアルタイムでオーバーライドして、ボトルネックを迅速に検出できます。自動分析ウィンドウは、グラフィックスパイプラインのさまざまな段階でパフォーマンスの問題を特定するために使用できます。GPU PerfStudioを使用するために、特別なドライバーやコードの変更は必要ありません。

あなたはここでより多くの情報とダウンロードリンクを見つけることができます:

于 2009-05-12T11:39:48.127 に答える
4

また、FPS に関する次の記事もご覧ください。

FPS とフレーム時間

基本的に、200 fps から 190 fps への低下は無視できるが、30 fps から 20 fps への低下ははるかに大きいという事実について語っています。パフォーマンス測定を向上させるには、FPS ではなくフレーム時間を計算する必要があります。

fps が何であるか、またはプログラムが何をしているのかをまったく教えてくれなかったので、「大幅な低下」は大したことではないかもしれません。

DirectXの場合、CPU および GPU 操作をプロファイリングするためのPIXがあります。非常に詳細な情報が得られる可能性があり、調べる価値があるかもしれません。

それが役立つことを願っています!

于 2009-05-13T15:24:19.263 に答える
1

dxprof を使用してみてください (Google で検索)。リアルタイム バーを描画する軽量アプリで、各バーは 1 つの DirectX イベント (ドローコールやリソース コピーなど) に対応します。バーをフリーズし、コール スタックをチェックして、ドローコールがどこから発生したかを調べることができます。

于 2010-04-27T16:27:38.260 に答える
0

推測する必要はありません。IDEで数回一時停止するだけで、待機している内容が正確に表示されます。

于 2009-05-12T13:10:22.647 に答える
0

Windows 向けに開発していますか? その場合、Video for Windows の使用は避けてください。これにより、説明した方法が制限されます。代わりに DirectX を使用してください。

于 2009-05-12T11:29:30.637 に答える