node memwatch:native native的泄漏

sam*_*uel 6 javascript memory-leaks node.js 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 
 },
Run Code Online (Sandbox Code Playgroud)

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

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

elh*_*yos 2

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

\n\n

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

\n\n
\n

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

\n
\n\n

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

\n