如何衡量Node.js中JS代码执行所用的CPU时间以进行基准测试?

时间:2018-06-13 23:22:07

标签: javascript node.js cpu-usage microbenchmark

我有一个函数可以执行任意JS函数调用的简单性能基准测试,如下所示:

function benchmark(f) {
   var startTime = Date.now();
   f();
   var endTime = Date.now();
   console.log('Elapsed: %d ms', endTime - startTime);
}

我用它测试的函数通常需要2-5秒来执行,因此计算一次对Date.now()的完整调用的开销可以忽略不计。

尽管如此,根据我的机器上正在运行的其他过程,基准时间变化相当大,所以即使我运行基准测试几次并采取最小值,我仍然可以看到之间的差异为20-50%连续(组)运行 - 即使机器“大部分”空闲。这使得很难看到性能变化<5%。

我最终不得不观察Activity Monitor并等到系统看起来(大部分)空闲,然后希望在运行过程中没有其他任何东西启动。相反,我想修改基准来测量经过的CPU时间而不是经过的时间。这应该使它对I / O被阻塞并且对CPU争用的敏感度大大不敏感(虽然不敏感:由于超线程,我期望如果可运行线程的数量超过物理CPU核心的数量,那么表现性能当超线程争用实际硬件时会减少。)

如何从Node中查询node进程的CPU时间?

0 个答案:

没有答案
相关问题