检测需要很长时间的node.js http.get调用

使多个http调用呈现页面的处理程序需要很长时间才能返回。 我想检测哪些电话需要很长时间才能完成。 我通过Google搜索找到的剖析方法[1]

  • 在Mac OSX上不起作用
  • 似乎涉及
  • 为我的需求显示方式太详细的信息
  • 如果它有任何区别,我使用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

    上一篇: detecting node.js http.get calls that take long time

    下一篇: A kind of memory leak on nodeJs?