[英]Javascript efficiency: big object vs many arrays
我正在開發一個基於Web的小游戲(websockets和nodejs),我很好奇哪種方法會被認為是更好的實踐/更有效。
我有一堆可以連接到游戲服務器的客戶端。 每個客戶端都有許多不同的屬性需要保存。
當前,我已經將這些區域划分為單獨的數組,因此,如果需要獲取用戶12的位置,請查看usrPos [12] .x ;如果需要通過websocket將信息發送給客戶端,請查看usrSoc [12 ] .id等。
我最近一直在想是否應該將所有信息組合到一個數組中。 所以我看usr [12] .pos.x和usr [12] .soc.id 。 顯然,這會創建一系列更大的對象,但在一定程度上提高了可讀性。 另外,我不需要跟蹤10個不同的數組來為一個用戶存儲數據。
那么哪種方法更好呢? 一種方法比另一種方法更有效嗎? 有興趣聽到人們的想法。 謝謝!
哪種方法更好? 好吧,我們在這里談論基本的OOP:您有許多不同的“數組”,其中包含有關客戶端的信息,並且客戶端的信息分散在許多不同的數組中,每個數組必須與另外10個數組共享索引。
您有一個問題:從套接字數組中刪除套接字但不刪除位置時會發生什么? 臭!
因此,如果客戶端是客戶端,則將其作為一個整體,並具有10個(在您的示例中)關於客戶端套接字,其屬性等的復合屬性。
請不要考慮“效率”。 您的問題的答案與效率無關,而與可維護性,健壯性和簡單性有關。 這些事情通常會自然地使您獲得更好的性能,但是只有在遇到性能問題時才應該關心性能。
記住(寫下來): 過早的優化是萬惡之源 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.