检测需要很长时间的node.js http.get调用
使多个http调用呈现页面的处理程序需要很长时间才能返回。 我想检测哪些电话需要很长时间才能完成。 我通过Google搜索找到的剖析方法[1]
如果它有任何区别,我使用express和Q promises嵌套几层
[1] http://blog.nodejs.org/2012/04/25/profiling-node-js/
使用中间件来跟踪请求并记录它们,如果它们花费太长时间。
一个例子是:
app.use(function(req, res, next) {
var start = new Date;
var maxDuration = 3000; //3 seconds
var url = req.protocol + '://' + req.get('host') + req.originalUrl;
if (res._responseTime) {
return next();
}
res._responseTime = true;
res.on('header', function() {
var duration = new Date - start;
if (duration > maxDuration) {
//this request took longer than 3 seconds, log it.
log('This request took longer than 3 seconds. URL: ' + url + ' Time: ' + duration + 'ms'); //Pseudo code
}
});
next();
});
链接地址: http://www.djcxy.com/p/52635.html