【发布时间】:2021-04-01 18:50:11
【问题描述】:
我的 express 应用程序中存在内存泄漏。 RSS 内存从大约 80Mb 开始,随着时间的推移缓慢增长,在几天内达到 2-3Gb 左右。我尝试使用 --inspect 标志启动进程并在 chrome 检查器中进行调试,但无法找出确切的问题。在这种情况下,一段时间内的对象分配并不高。正如所附屏幕截图中所见,最高的内存消耗是字符串。谁能指出我修复这个漏洞的正确方向?
平台:Linux - Ubuntu 18.04.5
【问题讨论】:
-
您可以分享您的代码的任何机会,例如通过github?
-
@eol 不幸的是,我无法分享源代码。这是一个生产应用程序。
-
您的 JavaScript 进程似乎不会导致泄漏(如果第一张图片实际上显示了之前和之后的屏幕截图)。您是否在控制台中打印某些内容?由于打开开发人员工具时,所有控制台输出都将保存在内存中。这可能是一个潜在的原因。关闭开发者工具应该会释放所有内存。
-
@WolverinDEV 肯定有很多日志记录已完成,但我怀疑这与内存泄漏有关。堆转储在一段时间内变化不大。 RSS 显着增长。我读了几篇文章,发现这更像是内存膨胀而不是内存泄漏。
-
@AdityaVarma 好吧,我也做了,但实际上在我的应用程序中出现了问题(我的行为完全相同)。您可以尝试禁用日志记录并仔细查看。 RSS 的显着增加可能是内存膨胀/碎片化,但经验不足的 JS 非常清楚这一点。你在使用任何原生模块吗?
标签: javascript node.js express memory-leaks sharp