首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个空的JavaScript对象有多少内存?

一个空的JavaScript对象有多少内存?
EN

Stack Overflow用户
提问于 2013-11-05 00:37:54
回答 1查看 1.1K关注 0票数 2

选项A:

代码语言:javascript
复制
myobj = {
    a: 'a',
    a1: 'a1',
    a2: 'a2',
    a2a: 'a2a',
    a2b: 'a2b',
    a3: 'a3',
    a3a: 'a3a',
    a3a1: 'a3a1',
    a3a2: 'a3a2',
    b: 'b',
    // ...
};

相对于选项B:

代码语言:javascript
复制
myobj = {
    a: {
        a1: 'a1',
        a2: {
            a2a: 'a2a',
            a2b: 'a2b'
        },
        a3: {
            a3a: {
                a3a1: 'a3a1',
                a3a2: 'a3a2'
            }
        }
    },
    b: { ... }
};

我正在权衡这是一个设计决策。这里有一个更简单的例子:

选项A:

代码语言:javascript
复制
eventHandler: {
    triggerObj: triggerObj,
    triggerAction: triggerObj.someMethod,
    responseObj: responseObj,
    responseAction: responseObj.someMethod
}

相对于选项B:

代码语言:javascript
复制
eventHandler: {
    trigger: {
        obj: triggerObj,
        action: triggerObj.someMethod
    },
    response: {
        obj: responseObj,
        action: responseObj.someMethod
    }
}

我敢肯定这就像眼科医生:他们离得太近了,这并不重要。但是,我想看看性能是否有任何坚实的理由,或者仅仅是为了语义/可读性/其他原因。

回到问题标题:有多少额外的对象大括号将需要有一个显著的性能问题?我怀疑即使是1000甚至100万也不会有多大关系:-\

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-18 16:42:59

我去做了。我创建了一个空对象,并将100万个空对象放入其中。然后我打开了侧写器。

代码语言:javascript
复制
Object count: 1,011,296
Shallow size: 12,202,312
Retained size: 14,434,484

因此,每个空JavaScript对象大约有12个字节。我也尝试过使用空数组对象:

代码语言:javascript
复制
Array count: 1,000,725
Shallow size: 32,023,200
Retained size: 32,034,880

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19780000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档