有没有办法在Node.js或任何其他类型的函数中可靠地计时SQL查询?

Sor*_*lob 3 instrumentation asynchronous node.js

我试图围绕节点中的aysnc函数.它有一个很好的方法来计算数据库查询通过Node.js运行多长时间.

对于应用的用法是计算一组算法运行所需的时间.我从一个输入并将其输入另一个输入.对第一组的调整可以输出更多或更少的数据.所以测量总体时间的响应可能不太准确.我正在尝试测量每个函数的运行时间.

任何关于理论的指针*都会赞赏我试着学习我认为重要的概念!

Adr*_*ien 6

在同步上下文中,您将执行以下操作:

 var time = function(fn){
   var start = Date.now();
   fn();
   return start - Date.now()
 }
 // which would be called this way : 
 var elapsed = time(function(){
   // do something
 }
 // do something with elapsed
 // do something else
Run Code Online (Sandbox Code Playgroud)

异步版本是:

 var time = function(fn, cb){
    var start = Date.now();
    fn(null, function(){
      var args = [].slice.call(arguments);
      args.splice(1, 0, Date.now() - start);
      cb.apply(this,args); 
    })
 }
 // which you would use this way: 
 time(function(err, cb){
   // do something
   cb(/* params */);
 }, function(err, elapsed /*, params */){
   // do something with elapsed
   // do something else
 });
Run Code Online (Sandbox Code Playgroud)

当然,您可以将两个函数合并在一起,但这会提供一些有用的通用性(您可以将它与任何函数一起使用).