gpt4 book ai didi

javascript - 一个空的 JavaScript 对象需要多少内存?

转载 作者:行者123 更新时间:2023-11-29 19:45:50 25 4
gpt4 key购买 nike

选项 A:

myobj = {
a: 'a',
a1: 'a1',
a2: 'a2',
a2a: 'a2a',
a2b: 'a2b',
a3: 'a3',
a3a: 'a3a',
a3a1: 'a3a1',
a3a2: 'a3a2',
b: 'b',
// ...
};

对比选项 B:

myobj = {
a: {
a1: 'a1',
a2: {
a2a: 'a2a',
a2b: 'a2b'
},
a3: {
a3a: {
a3a1: 'a3a1',
a3a2: 'a3a2'
}
}
},
b: { ... }
};

我将其作为设计决策进行权衡。这是一个更简单的案例:

选项 A:

eventHandler: {
triggerObj: triggerObj,
triggerAction: triggerObj.someMethod,
responseObj: responseObj,
responseAction: responseObj.someMethod
}

对比选项 B:

eventHandler: {
trigger: {
obj: triggerObj,
action: triggerObj.someMethod
},
response: {
obj: responseObj,
action: responseObj.someMethod
}
}

我很确定这就像眼科医生:它们非常接近,这并不重要。但是,我想看看是否有任何可靠的性能原因,或者只是为了语义/可读性/其他。

回到问题标题:需要多少额外的对象大括号才能产生显着的性能问题?我怀疑即使是几 1000 甚至 1,000,000 也不重要:-\

最佳答案

我继续做了。我创建了一个空对象,并在其中放入了 100 万个空对象。然后我打开了探查器。

Object count: 1,011,296
Shallow size: 12,202,312
Retained size: 14,434,484

所以每个空的 JavaScript 对象大约有 12 个字节。我也用空数组对象试过:

Array count: 1,000,725
Shallow size: 32,023,200
Retained size: 32,034,880

空数组对象占用大约 32 个字节。

关于javascript - 一个空的 JavaScript 对象需要多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19780000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com