【发布时间】:2016-10-10 09:11:15
【问题描述】:
我正在尝试摆脱内存泄漏,但我对这方面的了解非常低,我没有人可以寻求帮助,期待你们。我的脚本正在杀死服务器 RAM,我无法弄清楚我的方法有什么问题。
我有这个功能:
function getPages(params){
gmail.users.messages.list(params, (err, resp)=>{
for (var message of resp.messages) {
message['ownerEmail'] = currentUser;
getMessage(message); // this does something with it later
var message = null;
}
if(resp.nextPageToken){
params.pageToken = resp.nextPageToken;
getPages(params);
} else {
// resolve end here...
}
})//gmail.users.messages.list
}//fetchPages
getPages(params);
基本上,它从 API 获取消息,然后应该对其进行处理。只要有更多数据要获取,它就会自行执行。 (只要在响应中存在 nextPageToken)。
现在我运行了这个命令:
$ free -lm
total used free shared buff/cache available
Mem: 11935 1808 7643 401 2483 9368
Low: 11935 4291 7643
High: 0 0 0
Swap: 6062 0 6062
随着脚本的运行,buff/cache 不断增加。
- buff/cache 到底是什么东西,它与我的 Node 脚本有什么关系?
- 如何管理缓冲/缓存的内容以及如何杀死/清除这些内容?
- 如何优化上面的函数来忘记已经处理的所有内容?
- 如何确保脚本完成后绝对占用零资源? (我什至在脚本末尾尝试了
process.exit) - 如何通过 Node.js 脚本调试和监控 RAM 使用情况?
【问题讨论】:
标签: node.js memory-leaks ram