我正在使用Benchmark JS的节点版本,但我找不到有关如何阅读结果的任何信息。
首先,是否有一个地方详细说明了您可以从Benchmark JS中提取的所有数据?
其次,我目前在我的控制台中收到以下结果:
Test x 2,276,094 ops/sec ±0.84% (190 runs sampled)
所有这些信息意味着什么?
测试:我的测试名称,我知道那个
x 2,276,094 ops / sec :我假设这是理论上代码理论上可以在一秒钟内运行的平均次数?
±0.84%:不知道
190次采样:基准测试运行代码以获得结果的次数?
答案 0 :(得分:8)
您的问题可能不是重复,但有点the answer to it is GolezTroi指出a comment。
如果该问题被删除(极不可能),请参阅John-David Dalton的答案全文:
我写了Benchmark.js,jsPerf使用。
" ops/sec
"代表每秒的操作。
这是预计在一秒钟内执行测试的次数。
重复执行测试,直到达到percentage uncertainty测量小于或等于1%
所需的最短时间。迭代次数将根据环境计时器的分辨率以及测试在最短运行时间内执行的次数而有所不同。我们收集5
秒(可配置)的完整测试运行,或者至少5
运行(也可配置),然后执行统计分析例子。因此,测试可能会在100,000
(大多数环境的最短运行时间)中重复50 ms
次,然后重复100
次( 5
秒)。较大的样本量(在此示例中为100
)会导致较小的margin of error。
我们通过考虑误差幅度来决定哪个测试更快,而不仅仅是操作/秒。例如,具有较低操作/秒但较高误差范围的测试可能与具有较高操作/秒和较低误差范围的测试在统计上无法区分。
我们使用welch t-test,类似于SunSpider使用的内容,但切换为unpaired 2-sample t-test以获得相等方差(方差非常小),因为welch t-test在较低的ops / sec和较高的ops / sec与较小的差异进行比较时遇到问题,导致degrees of freedom计算得小于1
。我们还在具有类似操作/秒的测试中添加5.5%
容差,因为实际测试显示相同的测试可以从测试到重新测试〜5%
。 T检验用于检查测试之间的差异是statistically significant。