【发布时间】:2014-01-20 12:27:55
【问题描述】:
我正在创建凉亭包搜索网站(一切都是开源的),但我碰壁了。我有一些内存泄漏(或者我想我有),老实说,我不知道它为什么会在那里。
您可以下载并自行运行,但简单的提示会对我有很大帮助。
我已将其范围缩小到此函数调用https://github.com/kamilbiela/bowereggs-backend/blob/master/main.js#L14 (nest.fetchAndSave()),这一切都在这里定义:https://github.com/kamilbiela/bowereggs-backend/blob/master/lib/nest.js
基本上它从互联网下载一个包列表,Json.parse 并将其插入数据库,加上一些 when.js 承诺。
多次运行此函数会在每次运行时创建 30mb 的内存,垃圾收集器不会清理该内存。另请注意,这是我的第一个“真正的”node.js 项目,因此我将非常感谢任何提示。
【问题讨论】:
-
哦,你为什么只运行这个函数几次? :) 让我们运行更多次,您可能会看到垃圾收集器工作。
-
我已经使用
node --expose-gc main.js运行了这个脚本,代码为:global.gc();没有帮助。还使用了github.com/lloyd/node-memwatch,似乎运行了gc,但之后没有清理内存(只有少量)。编辑:另外我发现它只是因为我的小型 vps 服务器杀死了进程,因为它没有足够的内存。
标签: node.js memory-leaks mongoose when-js