我的节点应用程序随着时间的推移而变慢。 阅读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功能的本地参考者,但我被锁定在这里。
所以如果我们做过实验,那就谢谢你的答案。
答案 0 :(得分:1)
如v8中所述code comments Native表示“本机对象(不是来自V8堆)”。
Further research让我得出了这个定义:
本机对象是JavaScript堆中不存在的所有其他对象。与堆对象相比,本机对象在整个生命周期内不由V8垃圾收集器管理,只能使用JavaScript包装器对象从JavaScript访问。
从最后一个链接注意到的一件好事是它提到了字符串可以存储在VM堆中或包装器对象中。在第二种形式中,这些包装器被创建“用于访问外部存储,例如,存储从Web接收的脚本源和其他内容”。