2012-07-24 79 views
2

我使用Javascript構建了一個實體系統。它基本上是一種用組件創造出世界對象的技術,如「位置」或「雪碧」。這些組件只保存數據,並且只有很少的方法。什麼是存儲多個ID的最佳技術?

我在一種數據庫中實現它,實體只是一個用於獲取組件實例的id。

「數據庫」 是一本字典,這將是這樣的:

{ 
    "ComponentType": ComponentInstances 
} 

組件實例是accesed這樣的:db[componentType][entityId]

我而言,什麼數據類型將是最有效的爲ENTITYID:一個?這些類型在JavaScript中佔用多少內存(我知道它有所不同,但即使估計也會有用)?

當然,如果它是一個字符串,數據庫將像詞典字典一樣實現,如果它是一個數字,則是一個數組字典(這不重要,因爲它們都是對象) 。

編輯:相比,一個參考,多少內存很重的字符串和數字?他們更有效率嗎?

回答

3

儘管在概念上,數字和字符串在作爲鍵時都被視爲相同(在JavaScript中鍵總是被當作字符串 - x [0]和x [「0」]返回相同的值),但最近的實現將特殊處理數字鍵並將它們存儲在連續的數組中。

因此,如果我是你,我會選擇連續的數字索引。

+0

太好了,謝謝。但是,在所有引擎中還是僅在V8中實現?另外,關於記憶的部分對我也很重要。 – corazza 2012-07-24 22:55:19

相關問題