一种测试javascript方法的方法



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

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

某些浏览器如Chrome,Chromium,Mozilla支持分析工具。你可以使用它

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

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

  • 测量开始时间

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

微基准测试并不总是能准确表示实际场景中的实施成本。 即使您运行完全相同的机器代码,代码也将在缓存中准备就绪,而在您的用例中可能并非如此。

由于现代JavaScript引擎优化了热循环代码的地狱,因此微基准测试机器代码可能会大不相同,因此问题变得更加复杂。唯一的方法是实现两种(或多种(方法,并在具有相似负载的特定用例中进行测试。

不过,大多数时候,搜索一堆(在jsperf这样的地方(会给你一个想法,并告诉你一个实现的性能是否要高得多。

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)

通过这种方式,您可以分别获得以毫秒为单位的持续时间

最新更新