javascript - 对 JavaScript 代码进行基准测试的学术正确方法?

标签 javascript benchmarking jsperf

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

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

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

对两段 JavaScript 代码进行基准测试的最佳方法和正确方法是什么?

最佳答案

我找到了答案。使用谷歌浏览器的 Profiler我能够获得函数的 CPU 时间。

使用分析器似乎是执行此操作的最佳方式,因为它实际上使用 CPU 时间而不是实际时间。结果应该不会受到影响,即使我的 CPU 在其中一个测试中以 100% 的速度运行。

关于javascript - 对 JavaScript 代码进行基准测试的学术正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40672819/

相关文章:

javascript - 初始化一个空的 ES6 类

javascript - CSS 文本框宽度继承自具有最大宽度的父容器

java - 我应该使用 '-server' 选项运行 JMH 基准测试吗

x86-64 - 为什么在 x86 上访问其他缓存行的速度较慢,与 Intel 记录的缓存行为不匹配?

c# - c# 代码的速度测试站点?

javascript - 如何在jsperf中指定测试浏览器?

javascript - 缩小 JavaScript 的执行时间会变慢吗?

javascript - 如何获取 ng-repeat 上对象属性的项目计数

javascript - 出于性能原因检测 Trident 6+

java - 在不创建单独的 maven 项目的情况下使用 jmh 对代码进行基准测试