我最近在从 MongoDB 迁移到 Postgresql 后偶然发现了我的 Node.js 应用程序中的内存泄漏。代码在 Node.js v 0.10.x 上运行。代码及其依赖项是 100% 用 JS 编写的。我正在使用 pg.js
模块来访问数据库。
问题是我看到 Node 的 RSS 增长(直到进程崩溃)但不是堆,也不是 V8 外部存储器(通过 --trace_external_memory
标志记录)。这就是为什么在 V8 堆中查找泄漏的任何工具都无法帮助我。
内存泄漏的原因可能是什么?例如,是否可能存在与 Buffer
实例相关的泄漏,而这些实例不会出现在外部内存日志中?
最佳答案
您运行的是什么版本的 Postgres?在 9.3.3 之前的版本中存在与 JSON 函数相关的内存泄漏。来自9.3.3 release notes :
“修复 JSON 函数中的内存泄漏”
如果可能,请尝试升级到 9.3.3 或更高版本(9.3.5 是撰写本文时最新的稳定版本)。
关于node.js - 确定 NodeJS 中 RSS 内存泄漏的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25367263/