私は小さなWebベースのゲーム(websocketsとnodejs)の構築に取り組んでいます。Javascriptの効率性:大きなオブジェクトと多数の配列
ゲームサーバーに接続できるクライアントがたくさんあります。各クライアントには、保存する必要のあるさまざまなプロパティがあります。
- 位置:x、y、方向、速度など
- 属性:エネルギー、HP、ダメージなど
- のWebSocket接続情報
- コントロール:キーの押下など
- カップル他のもの
現在、私は別々の配列にそれらの領域を分割しましたですから、ユーザ12の位置を取得する必要がある場合は、usrPos [12] .xを参照し、websocketを通じてクライアントに情報を送信する必要がある場合は、usrSoc [12] .idなどを参照してください。 。
私はすべての情報を1つの配列にまとめる必要があるかどうか不思議でした。私はusr [12] .pos.xとusr [12] .soc.idを見ています。明らかにこれははるかに大きなオブジェクトの配列を作成しますが、可読性はある程度向上します。また、1人のユーザーにデータを格納するために10種類の配列を追跡する必要もありません。
どのようにすればよいですか?もう一方の方が効率的です。人々の考えを聞くことに興味がある。ありがとう!
これはあまりにも幅広く[so] –
実際には*より*大きな*オブジェクトではなく、もっと*オブジェクトを作成します。理論的には、両方のアプローチでは、[アクセス特性が異なるかもしれません](https://en.wikipedia.org/wiki/Parallel_array)、ほぼ同じ容量のスペースが必要です。実際には、実際には全く問題ではありません。それがあなたのために十分であれば、あなたはあなたの実際のデータ上で互いに対してソリューションをベンチマークするべきです。 – Bergi
論理的に接続されたデータを異なるデータ構造に分割することは、概念的に簡単でエラーが起こりにくいことはほとんどありません。例えば。両方のシナリオでユーザーの1人を削除する必要がある場合は、何をする必要があるか考えてください。またはユーザーをソートする必要がある場合。またはそれらを実装した後で、新しい属性を追加する必要がある場合。 – Amadan