JSON对象内存分配与变量

时间:2017-10-17 14:55:45

标签: javascript

我有一个与JSON对象的内存分配有关的问题。 JSON会比单个变量占用更多内存吗?对于Ex:

var testVar1 = "testVar1"; //  8*2 bytes for char + integer pointer (8bytes)
var testVar2 = "testVar1";//  8*2 bytes for char + integer pointer (8bytes)
var testVar3 = "testVar1";//  8*2 bytes for char + integer pointer (8bytes)

vs
testVariables = {
"testVar1":"testVar1",
"testVar2":"testVar2",
"testVar3":"testVar3"
}   

当我打开内存分析器时,testVariables保留的内存似乎不仅仅是单个变量内存的总和(保留)。请告诉我哪个是更好的解决方案

1 个答案:

答案 0 :(得分:0)

当您创建3个新变量时,Javascript引擎将在范围对象中创建3个新属性并影响它们的值。

创建包含3个属性的对象时。引擎为范围对象创建1个新属性。它会影响包含3个属性引用及其值的Object的新实例。

所以在第二种情况下,你有1个引用和1个对象实例比第一种情况更多。