node.js process.hrtime在异步服务器中?

时间:2013-08-26 11:05:46

标签: javascript node.js asynchronous

我使用http.createServer(onRequest)创建一个http服务器,并希望测量做出响应所需的时间。

目前,在我的onRequest处理程序中我做了:

var start = process.hrtime();

response.on('end', function (){
    console.log('time to respond', process.hrtime(start));
});

// call various asynchronous functions and send them 'response' object. One of them eventually does response.end()

我担心如果一堆请求立即出现,或者异步会破坏它/混淆时间,这种方法是否能正常工作?

2 个答案:

答案 0 :(得分:0)

变量将位于onRequest处理程序函数的闭包范围内,因此它将按照您期望的方式工作(假设process.hrtime执行您想要的操作)。

答案 1 :(得分:0)

你应该做点什么,

function measureRequestTime (req, res, next) {
  var start = process.hrtime();
  response.on('end', function () {
    // logging the time here..
  });
}

// app init

app.use(meastureTime);