簡體   English   中英

Javascript效率:大對象與許多數組

[英]Javascript efficiency: big object vs many arrays

我正在開發一個基於Web的小游戲(websockets和nodejs),我很好奇哪種方法會被認為是更好的實踐/更有效。

我有一堆可以連接到游戲服務器的客戶端。 每個客戶端都有許多不同的屬性需要保存。

  • 位置:x,y,方向,速度等。
  • 屬性:能量,馬力,損壞等
  • websocket連接信息
  • 控件:按鍵等
  • 其他幾件事

當前,我已經將這些區域划分為單獨的數組,因此,如果需要獲取用戶12的位置,請查看usrPos [12] .x ;如果需要通過websocket將信息發送給客戶端,請查看usrSoc [12 ] .id等。

我最近一直在想是否應該將所有信息組合到一個數組中。 所以我看usr [12] .pos.xusr [12] .soc.id 顯然,這會創建一系列更大的對象,但在一定程度上提高了可讀性。 另外,我不需要跟蹤10個不同的數組來為一個用戶存儲數據。

那么哪種方法更好呢? 一種方法比另一種方法更有效嗎? 有興趣聽到人們的想法。 謝謝!

哪種方法更好? 好吧,我們在這里談論基本的OOP:您有許多不同的“數組”,其中包含有關客戶端的信息,並且客戶端的信息分散在許多不同的數組中,每個數組必須與另外10個數組共享索引。

您有一個問題:從套接字數組中刪除套接字但不刪除位置時會發生什么? 臭!

因此,如果客戶端是客戶端,則將其作為一個整體,並具有10個(在您的示例中)關於客戶端套接字,其屬性等的復合屬性。

請不要考慮“效率”。 您的問題的答案與效率無關,而與可維護性,健壯性和簡單性有關。 這些事情通常會自然地使您獲得更好的性能,但是只有在遇到性能問題時才應該關心性能。

記住(寫下來): 過早的優化是萬惡之源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM