1

我有一个 Node.js 应用程序,它每 15 分钟检查和检索一次电子邮件。我正在使用node-imapmailparser。当我测试时,我发现内存似乎泄漏了。运行一夜后,我的进程内存从 50MB 增加到 2.3GB。

这里有一些问题问我。1,我知道Node.js有内存限制(实际上是v8限制),在x64系统中大约是1.8G。但我的应用程序使用了 2.3G。为什么会这样?这是否意味着 v8 的内存被泄露了?2,我附加memwatch了模块并试图找出原因。但是在运行我的应用程序 30 分钟后,我可以看到内存从 50MB 增加到 200MB,但memwatch没有触发leak事件。这是否意味着没有内存泄漏?还是因为非 v8 内存泄漏但memwatch无法检测到?

我是 Node.js 性能调整和内存分析的新手,因此任何想法都会受到赞赏。

谢谢,

每次heapdump应用程序检索电子邮件后, 我都会转储快照。然后我得到了 4 个快照,当我比较它们时,“字符串”是增加最多的类别(来自相同的结果memwatch.diff。在 Chrome 开发工具中,它们都被标记为“(切片字符串)中的父级”。所以我想知道是什么这意味着。为什么它不能被 GCed,因为它只是我函数中的一个本地变体,每次我需要检查邮件时都会调用它。

4

0 回答 0