我有一个与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保留的内存似乎不仅仅是单个变量内存的总和(保留)。请告诉我哪个是更好的解决方案
答案 0 :(得分:0)
当您创建3个新变量时,Javascript引擎将在范围对象中创建3个新属性并影响它们的值。
创建包含3个属性的对象时。引擎为范围对象创建1个新属性。它会影响包含3个属性引用及其值的Object的新实例。
所以在第二种情况下,你有1个引用和1个对象实例比第一种情况更多。