假设EventXObj是一个具有许多属性和一些方法的javascript对象。
EventXObj可以与简单的字符串id相关联,如下所示。
[ "id1" : Event1Obj , "id2": Event2Obj, ..., "id1000": Event1000Obj ]
我们希望表示单个PlaceXObject如何容纳许多事件。
关于以下内容,场景A是否比场景B占用更多内存?
情景A
PlaceX.events = [ "id1", "id2", "id75", ... ]
情景B
PlaceX.events = [ Event1Obj, Event2Obj, Event75Obj, ... ]
答案 0 :(得分:2)
从通用角度来看,场景B可能是内存效率最高的场景。 JavaScript中的所有内容都类似于指针/引用,因此B对数组中包含的每个事件使用一个整数(左右)。
场景A使用尽可能多的内存,因此对于长字符串,它会很糟糕。对于你的情况,使用非常短的字符串,但没有太大的区别。
答案 1 :(得分:2)
它完全取决于您正在使用的JavaScript引擎使用的内存模型。
以当前版本的V8为例(假设为32位):
n
元素的字典= 3 * 4 * 2 * nearestPowerOfTwo(n)字节。现在,您可以对当前版本的V8进行数学计算。