测量js执行时间是判断应用程序响应请求的速度的一种方式吗?

时间:2012-07-21 04:14:06

标签: performance node.js heroku express

我在node.js / express应用程序的最开头有类似microtime()函数的东西。

function microtime (get_as_float) {
    // Returns either a string or a float containing the current time in seconds and microseconds  
    // 
    // version: 1109.2015
    // discuss at: http://phpjs.org/functions/microtime
    // +   original by: Paulo Freitas
    // *     example 1: timeStamp = microtime(true);
    // *     results 1: timeStamp > 1000000000 && timeStamp < 2000000000
    var now = new Date().getTime() / 1000;
    var s = parseInt(now, 10);

    return (get_as_float) ? now : (Math.round((now - s) * 1000) / 1000) + ' ' + s;
}

实际应用的代码如下所示:

application.post('/', function(request, response) {
  t1 = microtime(true);
  //code
   //code
   response.send(something);
   console.log("Time elapsed: " + (microtime(true) - t1));
}
  

已过去的时间:0.00599980354309082

我的问题是,这是否意味着从POST请求到达服务器的时间到发送响应的时间是给予还是需要~0.005?

我已经测量了它的客户端,但我的互联网速度非常慢,所以我认为有一些滞后与应用程序本身无关。有什么方法可以快速简便地检查请求的处理速度?

1 个答案:

答案 0 :(得分:2)

这里无耻插头。我已经编写了一个代理,可以跟踪每个Express请求的时间使用情况。

http://blog.notifymode.com/blog/2012/07/17/profiling-express-web-framwork-with-notifymode/

事实上,当我第一次开始编写代理时,我采用了相同的方法。但我很快就意识到这不准确。我的实现通过替换Express路由器来跟踪请求和响应之间的时间差。这让我可以添加跟踪器功能。随意尝试一下。