【发布时间】:2015-01-14 15:14:55
【问题描述】:
我正在从我的 NodeJS 应用程序创建 http 请求,如下所示:
var start;
var req = http.request(options, function (res) {
res.setEncoding('utf8');
var body = '';
res.on('data', function (chunk) {
body += chunk;
});
res.on('end', function () {
var elapsed = process.hrtime(start)[1] / 1000000; // in milliseconds
console.log(elapsed);
// whatever
});
});
req.on('socket', function (res) {
start = process.hrtime();
});
req.on('error', function (res) {
// whatever
});
if (props.data) req.write(props.data);
req.end();
我想知道我的请求需要多长时间 - 从请求通过网络的那一刻(而不是创建承诺的那一刻)开始(或我能到达的最接近的时间),直到“响应结束”事件开始的那一刻。
我很难找到最接近的时刻/事件,我可以开始测量时间。 Http 客户端 socket event 是我目前最好的选择,但它的描述:
在一个套接字分配给这个请求之后发出。
并不能真正说明这是否是我正在寻找的事件.. 所以,我的问题是 - 我这样做是否正确,或者是否有更好的事件可以使用(或者甚至是做整个事情的更好方法)?谢谢。
【问题讨论】:
标签: javascript node.js http client performance-testing