我從谷歌加載我的日曆。但每次我這樣做時,節點都會使用2 mb以上的內存。即使我刪除了模塊。我需要每5分鐘或10分鐘加載一次,以便查看是否有變化。這是我的代碼。nodejs的內存泄漏
谷歌,calender.js模塊
module.exports = {
loadCalendars: function(acces, res){
gcal = require('google-calendar');
google_calendar = new gcal.GoogleCalendar(acces);
google_calendar.calendarList.list(function(err, calendarList) {
toLoadCalenders = calendarList.items.length;
loaded = 0;
data = [];
for(var i = 0; i < toLoadCalenders; i++){
google_calendar.events.list(calendarList.items[i].id, function(err, calendarList) {
loaded++;
data.push(calendarList);
if (loaded == toLoadCalenders) {
res.send(data);
}
});
}
});
}
}
main.js
app.get('/google-calender', function (req, res) {
google = require('./google-calender');
google.loadCalendars(acces, res);
setTimeout(function(){
delete google;
},500);
});
有誰知道我如何防止內存泄漏在這裏?
僅供參考,您不會在Javascript中刪除一個變量。你不會顯示聲明變量'google'的位置,但通常你只是讓它超出範圍,如果沒有人提到它,垃圾收集器將爲你清理它。您可能需要閱讀以下內容:http://perfectionkills.com/understanding-delete/ – jfriend00
要查看您是否真的有泄漏,您將不得不採取堆快照來查看實際正在使用的內容與未使用的內容內存等待重用。 – jfriend00