我正在尝试运行以下节点脚本:
var request = require('request');
var async = require('async');
var util = require('util');
function makeRequest(dom, cb) {
request("http://" + dom,
function(err, response, body) {
console.log(util.inspect(process.memoryUsage()));
cb();
});
}
var arr = [];
for (var i = 0; i < 1600000; i++) {
arr.push("google.com");
}
async.eachLimit(arr, 100, function(dom, call) {
process.nextTick(function() {
makeRequest(dom, call);
});
}, function(err) {
console.log("done");
});
function call() {
}
我基本上对网络服务提出了很多的HTTP请求(例如,我使用了 google.com )。问题是脚本的内存使用量在没有倒退的情况下稳定增加,直到它崩溃并出现了一个&#34;致命错误:CALL_AND_RETRY_2分配失败 - 处理内存不足&#34;。任何人都可以告诉我为什么会发生内存泄漏以及如何解决它?谢谢。