一种测试javascript方法的方法

时间:2017-08-26 14:11:55

标签: javascript testing methods time execution

有没有办法比较两种方法的执行时间?

例如,我想知道哪种方法更快:querySelector()或getElementById()。 从理论上讲,我猜,时间应该是一样的。但是,如果我想在实践中检查它怎么办?有没有办法执行第一个方法并检查它花了多少时间,接下来用第二个方法做同样的事情,然后比较两个结果?

3 个答案:

答案 0 :(得分:0)

Chrome,Chromium,Mozilla等浏览器支持分析工具。你可以用那个

你可以在经典意义上手动完成

  • 衡量开始时间
  • 多次重复空循环
  • 衡量差异,即循环的开销。

  • 衡量开始时间

  • 多次重复您的代码
  • 测量差值,减去循环的开销并除以次数。

答案 1 :(得分:0)

微基准测试并不总是能够准确地表示实际情况下的实施成本。 即使您运行完全相同的机器代码,代码也将在缓存中准备就绪,在您的用例中可能不是这种情况。 现代javascript引擎优化了热循环代码的地狱,因此微基准机器代码可能会有很大不同,这使问题变得更加复杂。唯一的方法是在具有类似负载的特定用例中实现两种(或更多)方法和测试。 大多数情况下,搜索一堆(在像jsperf这样的地方)会给你一个想法并告诉你一个实现是否大大提高了性能。

答案 2 :(得分:0)

var startTime = new Date().getTime();
document.querySelector("element");
var endTime = new Date().getTime();
console.log(endTime - startTime)


var startTime = new Date().getTime();
document.getElementById("element");
var endTime = new Date().getTime();
console.log(endTime - startTime)

通过这种方式,您可以单独获得持续时间(以毫秒为单位)