pro*_*eld 10 javascript memory object
JavaScript中空对象的内存占用量是多少?如果使用对象文字语法创建对象:
let emptyObj = {};
Run Code Online (Sandbox Code Playgroud)
在谷歌Chrome开发者工具(配置文件选项卡)中,拍摄快照后,它显示浅尺寸和保留尺寸等于56字节.此外,如果通过以下方式创建对象,则会出现相同的大小:
let emptyObj = Object.create(null);
Run Code Online (Sandbox Code Playgroud)
对我来说,这太过分了,因为我在代码执行期间创建了很多对象(不一定是空的,但主要是只有很少的属性),我必须将它们存储在内存中.我假设如果可以减少空对象大小,也可以通过相同数量的字节减少具有属性的对象的大小.
例如,如果object看起来像这样:
let foo = {bar: 4};
Run Code Online (Sandbox Code Playgroud)
它的大小,比方说,56(空对象开销)+ 6(密钥)+ 8(值)= 70字节,然后将空对象的大小减少40个字节将导致foo的大小为30字节(16 + 6 + 8).
这是对Chrome空对象大小的正确解释吗?是否可以减少它?它会导致非空对象的大小减小吗?
The*_*evs -2
空的物体并不那么空。如果这样做emptyObj.__proto__ = null将会删除该__proto__链。但随后它可能会抛出 . 的一些基本方法的错误Object。然而,简单的属性分配和属性读取就可以很好地工作。希望它能为您节省一些字节。
| 归档时间: |
|
| 查看次数: |
570 次 |
| 最近记录: |