在发出大量HTTP请求时,节点JS内存泄漏

时间:2014-08-13 07:53:46

标签: node.js memory-leaks

我正在尝试运行以下节点脚本:

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;。任何人都可以告诉我为什么会发生内存泄漏以及如何解决它?谢谢。

0 个答案:

没有答案