2

Javascript でエンティティ システムを構築しています。これは基本的に、「Position」や「Sprite」などのコンポーネントからインワールド オブジェクトを構成する手法です。これらのコンポーネントはデータのみを保持し、マイナーなメソッドしかありません。

私は一種のデータベースに実装しています。エンティティは、コンポーネントのインスタンスにアクセスするための単なる ID です。

「データベース」は辞書で、次のようになります。

{
    "ComponentType": ComponentInstances
}

Component インスタンスは次のようにアクセスされます: db[componentType][entityId].

entityId で最も効率的なのはどのデータ型か、つまり文字列数値かが心配です。これらの型は Javascript でどのくらいのメモリを消費しますか?

もちろん、それが文字列の場合、データベースは辞書の辞書のように実装され、数値の場合は配列の辞書のように実装されます (どちらもオブジェクトであるため問題ありません)。

編集:参照と比較して、文字列と数値はどのくらいのメモリ負荷がかかりますか? 彼らはより効率的ですか?

4

1 に答える 1

3

概念的には、数値と文字列の両方がキーとして使用される場合は同じように扱われますが (Javascript ではキーは常に文字列として扱われます - x[0] と x["0"] は同じ値を返します)、最近の実装では数値キーが特殊なケースになります。それらを連続した配列に格納します。

したがって、私があなたなら、連続した数値インデックスを使用します。

于 2012-07-24T21:40:22.497 に答える