我正在创建凉亭包搜索网站(一切都是开源的),我碰壁了。我有一些内存泄漏(或者我认为我有)并且老实说我不知道它为什么存在。
您可以下载并自行运行,但简单的提示对我有很大帮助。
我已将其缩小到此函数调用https://github.com/kamilbiela/bowereggs-backend/blob/master/main.js#L14(nest.fetchAndSave()),这里全部定义:https://github.com/kamilbiela/bowereggs-backend/blob/master/lib/nest.js
基本上它从Internet下载包列表,Json.parse并将其插入到数据库中,加上一些when.js承诺。
运行此函数几次会在每次运行时创建30mb的内存,垃圾收集器不会清理它。另请注意,这是我的第一个“真正的”node.js项目,所以我非常感谢任何提示。
答案 0 :(得分:2)
对于遇到同样问题的人:
https://github.com/c4milo/node-webkit-agent
在进行少量堆转储后,我发现对象是垃圾收集的,并且实际的内存使用量与它无关。我认为真正的内存使用量更大,因为使用mongo和其他非node.js的东西。实际内存使用量稳定在~300mb,堆转储在~35mb。