基准js的结果是什么意思?

McS*_*man 6 javascript benchmark.js

我正在使用Benchmark JS版本的节点,我找不到有关如何阅读结果的任何信息.

首先,是否有一个地方详细说明了您可以从Benchmark JS中提取的所有数据?

其次,我目前在我的控制台中得到以下结果:

Test x 2,276,094 ops/sec ±0.84% (190 runs sampled)
Run Code Online (Sandbox Code Playgroud)

所有这些信息意味着什么?

测试:我的测试名称,我知道一个

x 2,276,094 ops/sec:我假设这是理论上在一秒钟内理论上运行的平均次数?

±0.84%:不知道

190运行采样:基准运行代码以获得结果的次数?

T.J*_*der 8

你的问题可能并不重复,但有趣的是答案就像GolezTroi评论中指出的那样.

如果该问题被删除(极不可能),这里是John-David Dalton答案的全文:


我写了一些jsPerf使用的Benchmark.js.

  1. " ops/sec"代表每秒的操作.这是预计在一秒钟内执行测试的次数.

  2. 重复执行测试,直到达到使测量的百分比不确定性小于或等于所需的最小时间1%.迭代次数将根据环境计时器的分辨率以及测试在最短运行时间内执行的次数而有所不同.我们收集完成的测试运行5数秒(可配置),或至少5运行(也可配置),然后对样本执行统计分析.所以,测试可以重复100,000在时间50 ms (最小运行时间对于大多数环境),然后重复100倍以上(5秒).较大的样本大小(在此示例中100)会导致较小的误差范围.

  3. 我们通过考虑误差范围来确定哪个测试更快,而不仅仅是操作/秒.例如,具有较低操作/秒但较高误差范围的测试在统计上可能与具有较高操作/秒和较低误差范围的测试无法区分.

    我们使用了类似于SunSpider使用的welch t检验,但是切换到不成对的双样本t检验以获得相等的方差(方差非常小),因为welch t检验比较较低的ops/sec和更高ops/sec具有小的差异,导致自由度被计算为小于.我们还在具有类似操作/秒的测试中添加了一个容差,因为实际测试表明相同的测试可以从测试到重新测试.T检验用于检查测试之间的差异是否具有统计学意义.15.5%5%