箭头函数和绑定的内存占用

时间:2017-03-25 04:19:07

标签: javascript node.js ecmascript-6 profiling

我正在尝试分析箭头函数和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的个人资料标签,我可以看到两个快照之间的比较:

heap-snapshot

我想知道如何解释结果。

具体来说,它是什么意思:

  • 一个heapdump的大小是另一个的大小的四倍?
  • 有这样的#deltasize_delta值?
  • (string)提供了如此多的增量?

0 个答案:

没有答案