7

我有一个节点应用程序随着时间的推移而变慢。阅读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 功能的本地引用,但我被锁定在这里。

因此,如果我们曾经尝试过,谢谢您的回答。

4

1 回答 1

2

如 v8代码注释中所述, Native 表示“本机对象(不是来自 V8 堆)”。

进一步的研究使我得出了这个定义:

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

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

于 2014-08-07T23:26:26.293 回答