【问题标题】:A way to test javascript methods一种测试javascript方法的方法
【发布时间】:2017-08-26 14:11:55
【问题描述】:

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

例如,我想知道哪种方法更快:querySelector() 或 getElementById()。 理论上,我猜,时间应该是一样的。但是如果我想在实践中检查呢?有什么方法可以执行第一种方法并检查它花费了多少时间,然后用第二种方法执行相同的操作,然后比较两个结果?

【问题讨论】:

标签: javascript testing methods time execution


【解决方案1】:

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

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

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

  • 测量开始时间

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

【讨论】:

    【解决方案2】:

    微观基准并不总能准确地反映实际场景中的实施成本。 即使您运行完全相同的机器代码,代码也会在缓存中准备好,而您的用例可能并非如此。

    现代 javascript 引擎优化热循环代码的事实使问题更加复杂,因此微基准机器代码可能会有很大不同。唯一的方法是实现这两种(或更多)方法并在您的特定用例中以相似的负载进行测试。

    但在大多数情况下,搜索一堆(在像 jsperf 这样的地方)会给您一个想法,并告诉您一个实现是否具有更高的性能。

    【讨论】:

      【解决方案3】:
      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)
      

      通过这个你可以分别获得以毫秒为单位的持续时间

      【讨论】:

      • 很高兴听到。所以你可以评价这个答案。它将帮助其他人找到最佳答案
      • 我做了,但没关系。我的声望低于 15 点。
      • 哦!没看到然后就OK了!
      猜你喜欢
      • 2016-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-02
      • 2014-02-19
      相关资源
      最近更新 更多