1

私のゲームでは多くの計算が行われ、明らかな理由もなくフレームレートが低下することがあります。処理に時間がかかるものを知りたいです。各主要操作の経過時間を出力するタイマー (または何か) を作成する方法は?

UPD:デフォルトのプロファイラーを実行した後、ボトルネックがタイル配列ループにあることがわかりました。約 50 万個のタイルがあり、ループはタイルの 1 つのプロパティ、フレームあたり約 200 個のタイルを要求します。そのようです:

if (tileArray[tile].this_tile_is_on_screen)
tileArray[tile].Draw();

tileArray が非常に大きい場合、速度が低下する可能性はありますか? それを回避する方法について何かアドバイスはありますか?

4

2 に答える 2

3

EQATEC Profiler for .NETなどのプロファイラー、またはVisual Studioの Premium および Ultimate バージョンに組み込まれているプロファイラーを使用します。

すでに log4Net などのロギング フレームワークを使用している場合は、コードのセクションにロギングを散りばめ、ロギングの詳細度を上げることができます。

于 2012-04-23T00:03:54.023 に答える
3

通常、タイマーにはDiagnostic名前空間のStopwatchクラスを使用します。 そして、 DebugクラスのWriteLine関数を出力して経過時間を出力します。

于 2012-04-23T00:16:07.853 に答える