计算函数执行时间

时间:2021-04-21 07:02:09

标签: javascript node.js

假设我调用了一个函数,

const data = await someFunction()

我想计算这个函数的执行时间。

为此我尝试过,

let startTime = Date.now();
const data = await someFunction()
let endTime = Date.now();

我计算了 endTime-startTime 和我得到的结果之间的差异,我认为以毫秒为单位并将其转换为秒。

我想就此提出第二意见,无论这是计算的选项之一,还是有一些更好的方法可以让我以秒为单位提供执行时间。

2 个答案:

答案 0 :(得分:2)

是的,还有一些更有趣的方法:

  1. 更准确的节点测试方法是使用:

    const start = process.hrtime()
    // awaited function
    const result = process.hrtime(start);
    
    // This will give results in nanoseconds
    
  2. 另一个有趣的方法是使用 performance hooks

    const { PerformanceObserver, performance } = require('perf_hooks');
    
    const obs = new PerformanceObserver((items) => {
      console.log(items.getEntries()[0].duration);
      performance.clearMarks();
    });
    
    obs.observe({ entryTypes: ['measure'] });
    
    performance.mark('A');
    // await your function
    performance.mark('B');
    performance.measure('A to B', 'A', 'B');
    

答案 1 :(得分:1)

你有没有尝试过 console.time() ?

def createFile(A,rows,filename):   
    f=open(filename,'w')
    for row in range(rows):
         f.write(*A[row])    # A is a 2D matrix with integers
    f.close()