1

一連のプロパティを持つオブジェクトの配列と、オブジェクトのすべてのプロパティを配列として持つ配列のどちらが高速で、メモリの消費量が少ないでしょうか?

私は 2D タイル ゲームを作成しており、世界はタイルで構成されているため、Tileタイルごとにクラスの個別のインスタンスを作成します。代わりにタイルのプロパティの配列を使用すると、より高速になる可能性があると言う人もいます。違いを自分の目で確かめたいのですが、この時点ではゲームが複雑すぎてコードを書き直すことができません。

更新:両方のオプションをテストする時間を見つけました。メモリと CPU の違いはわずかですが、オブジェクトの配列は、作業が非常に簡単である (コードの読みやすさ + デバッグの単純さ) ために勝ちます。

4

2 に答える 2

3

おそらく、配列の作成とアクセスパターンに依存します。ただし、経験則として、これら 2 つのアプローチでパフォーマンスに大きな違いがあるとは考えていません。パフォーマンスの問題である可能性があると本当に考えている場合は、両方を実装し、プログラムをプロファイリングして、結果を比較することが唯一の確実な方法です。

の配列を使用Tileすると、はるかに単純で簡単なコードになる可能性が高いので、それを使用してください。実際にパフォーマンスの問題がある場合は、プロファイルを作成して、コードの負荷の高いセクションを見つけます。

于 2012-07-17T20:25:01.843 に答える
2

メモリ使用量の観点からは、プロパティの配列はより少ないメモリを消費します。ただし、実用的な観点からは、オブジェクトの配列を使用すると抽象化のレイヤーが追加され、デバッグが容易になり、コードを簡単に変更して新しいプロパティを追加できるようになります。

于 2012-07-17T20:24:15.467 に答える