node memwatch:native native的泄漏

时间:2014-02-10 17:12:40

标签: javascript node.js memory-leaks node-memwatch

我的节点应用程序随着时间的推移而变慢。 阅读https://hacks.mozilla.org/2012/11/tracking-down-memory-leaks-in-node-js-a-node-js-holiday-season/似乎我的内存泄漏和v8 gc正在减慢我的应用程序。 所以我尝试了node-memwatch,但相关的结果是

 { 
   what: 'Native',
   size_bytes: 18853040,
   size: '17.98 mb',
   '+': 2247,
   '-': 116 
 },

但我不知道在我的代码库中搜索什么。 我认为原生v8功能的本地参考者,但我被锁定在这里。

所以如果我们做过实验,那就谢谢你的答案。

1 个答案:

答案 0 :(得分:1)

如v8中所述code comments Native表示“本机对象(不是来自V8堆)”。

Further research让我得出了这个定义:

  

本机对象是JavaScript堆中不存在的所有其他对象。与堆对象相比,本机对象在整个生命周期内不由V8垃圾收集器管理,只能使用JavaScript包装器对象从JavaScript访问。

从最后一个链接注意到的一件好事是它提到了字符串可以存储在VM堆中或包装器对象中。在第二种形式中,这些包装器被创建“用于访问外部存储,例如,存储从Web接收的脚本源和其他内容”。

相关问题