如何度量基于事件的NodeJs的响应时间a.



我有这样一个场景:

有一个调用API服务的NodeJS客户端应用。然后客户端启动一个侦听器来获得响应。

现在我需要测量从API被调用到客户端接收到事件的响应时间。

最后,我想为它做性能测试。

//1) call API
//2) rise listener
context.events.myEvent().on('data', async event => {

console.log("result"); 
//3) here needs to measure Response time
});

请帮我解决这个问题。

您可以使用console.time()console.timeEnd()

当您想启动定时器时,调用console.time(),console.timeEnd()停止并打印经过的时间。

//1) call API
console.time("response time")
//2) rise listener
context.events.myEvent().on('data', async event => {
//3) here needs to measure Response time
console.timeEnd("response time")
});

文档:控制台。时间,console.timeEnd

如果你需要变量的形式,你必须手动获取时间戳并计算它

//1) call API
let start = new Date().getTime()
//2) rise listener
context.events.myEvent().on('data', async event => {
let end = new Date().getTime()
//3) here needs to measure Response time
let elapsedTime = end - start;
});

对于任何想要获得时间流逝值而不是控制台输出的人:

使用process.hrtime(),下面是我的简单方法:


context.events.myEvent().on('data', async event => {
var startTime = process.hrtime();
var elapsedSeconds = parseHrtimeToSeconds(process.hrtime(startTime));
console.log('It takes ' + elapsedSeconds + 'seconds');
});
function parseHrtimeToSeconds(hrtime) {
var seconds = (hrtime[0] + (hrtime[1] / 1e9)).toFixed(3);
return seconds;
}

相关内容

  • 没有找到相关文章

最新更新