我正在尝试分析箭头函数和bind
的内存使用情况以查看是否存在差异。我想知道如何从目前为止的地方开始。
首先,我写了两个javascript文件,一个使用箭头函数,另一个bind
。然后我拍了快照。
bind.js
var heapdump = require('heapdump');
var arr = [];
this.value = 'foo';
for (var i = 0; i < 100000; ++i) {
arr.push(
(function() {
console.log(this.value);
}.bind(this))
);
}
heapdump.writeSnapshot('./bind.heapsnapshot')
console.log(arr.length);
arrow.js
var heapdump = require('heapdump');
var arr = [];
this.value = 'foo';
for (var i = 0; i < 100000; ++i) {
arr.push(
(() => {
console.log(this.value);
})
);
}
heapdump.writeSnapshot('./arrow.heapsnapshot')
console.log(arr.length);
使用Chrome devtool的个人资料标签,我可以看到两个快照之间的比较:
我想知道如何解释结果。
具体来说,它是什么意思:
#delta
和size_delta
值?(string)
提供了如此多的增量?