在循环性能

时间:2015-06-01 01:50:01

标签: node.js http request

我尝试使用request库对Node.js express app进行基准测试:

var request = require('request');

var totalRequests = 100000;

for(var i = 0; i < totalRequests; i++) {
    (function(i) {
        request('http://localhost:3000/', function(error, response, body) {
            console.info('Request ' + (i + 1));
        });
    })(i);
}

当我运行它时,我没有看到请求超过40秒的console.info()请求回调,然后它们就开始了。我是否应该立即看到请求?

1 个答案:

答案 0 :(得分:0)

40秒可能是准备100,000个请求所需的时间。由于您要同步循环,因此在所有请求都已启动之前,您的回调无法被调用。

如果您打算以串联方式而不是并行方式提出部分或全部请求,我建议使用类似async的库。