【问题标题】:What is the optimal technique to store many ids?存储许多 id 的最佳技术是什么?
【发布时间】:2012-07-24 21:34:58
【问题描述】:

我正在用 Javascript 构建一个实体系统。它基本上是一种由组件组成世界对象的技术,例如“位置”或“精灵”。这些组件只保存数据,它们只有次要方法。

我在某种数据库中实现它,实体只是一个用于获取组件实例的 ID。

“数据库”是一个字典,看起来像这样:

{
    "ComponentType": ComponentInstances
}

像这样访问组件实例:db[componentType][entityId]。

我担心对于 entityId 最有效的数据类型是:string 还是 number?这些类型在 Javascript 中占用多少内存(我知道它会有所不同,但即使是估计也会有用)?

当然,如果是字符串,则数据库将像字典字典一样实现,如果是数字,则以数组字典的形式实现(这无关紧要,因为两者都是对象)。

编辑:与参考相比,字符串和数字占用了多少内存?它们更有效率吗?

【问题讨论】:

    标签: javascript database string memory numbers


    【解决方案1】:

    虽然从概念上讲,数字和字符串在用作键时被视为相同(在 Javascript 中键始终被视为字符串 - x[0] 和 x["0"] 返回相同的值),但最近的实现将是特殊情况数字键并将它们存储在一个连续的数组中。

    因此,如果我是你,我会选择连续的数字索引。

    【讨论】:

    • 太好了,谢谢。但这是在所有引擎中实现还是仅在 V8 中实现?另外,关于记忆的部分对我来说也很重要......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多