学术上正确的JavaScript代码基准测试方法?

学术上正确的JavaScript代码基准测试方法?,javascript,benchmarking,jsperf,Javascript,Benchmarking,Jsperf,我目前正在写一篇论文。在本文中,我将讨论代码的优化。在我的示例中,我将使用JavaScript区分两个数组。比较ES5过滤器和嵌套for循环 我的测试按预期进行。ES5过滤器比嵌套for循环慢89-90%。使用(启动计时器、运行代码、停止计时器和计算所用时间)可以找到类似的结果 所有这些都非常适合于基准代码。真的,他们是。然而,他们在学术上并不正确。在第一次测试完成之后,如果我运行一个100%CPU密集型的基准测试,会发生什么?测试2的结果是“无效”的 对两段JavaScript代码进行基准测试

我目前正在写一篇论文。在本文中,我将讨论代码的优化。在我的示例中,我将使用JavaScript区分两个数组。比较ES5过滤器和嵌套for循环

我的测试按预期进行。ES5过滤器比嵌套for循环慢89-90%。使用(启动计时器、运行代码、停止计时器和计算所用时间)可以找到类似的结果

所有这些都非常适合于基准代码。真的,他们是。然而,他们在学术上并不正确。在第一次测试完成之后,如果我运行一个100%CPU密集型的基准测试,会发生什么?测试2的结果是“无效”的


对两段JavaScript代码进行基准测试的最佳方法是什么?我找到了答案。使用谷歌Chrome浏览器,我能够获得我的函数的CPU时间


使用探查器似乎是最好的方法,因为它实际上使用的是CPU时间而不是实际时间。结果应该不会受到影响,即使我的CPU在其中一个测试中以100%的速度运行。

@robertklep我读到了这一点以及所有的担忧,但是,如果我说“我运行了一百万次这段代码,并花费了平均时间”,我会受到抨击。那不是正确的做法。如果我以100%的CPU使用率运行基准测试,结果会有所不同。@MortenMoulder不同浏览器的结果也会不同。还有不同版本的浏览器。这意味着你现在的结果在接下来的几个月可能会完全不同。你对有效性的要求是什么?@vlaz这是真的,我一点也不在乎。只要我现在能证明一段代码比这篇文章快,未来就可以等待了。你在问一段JS代码基准测试的正确方法,但你肯定
benchmark.JS
实现的算法是不正确的?此外,“100%CPU使用率”问题涉及任何基准测试,而不仅仅是JS,因此您可能应该从阅读通用基准测试“卫生”开始。