首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提高benchmark.js中单项测试的准确性

如何提高benchmark.js中单项测试的准确性
EN

Stack Overflow用户
提问于 2016-06-05 19:45:25
回答 2查看 120关注 0票数 0

我有一个小提琴,在这里我试图测量我感兴趣的一些操作的性能,并且我不断地获得不同的个别测试的准确性。例如,下面是我最后一次运行:

代码语言:javascript
复制
using extra assign x 662 ops/sec ±9.20% (57 runs sampled)
using no extra assign x 694 ops/sec ±4.31% (47 runs sampled)
Fastest run(s) is(are): "using no extra assign,using extra assign"

很难测量具有不同精度的结果,在某些情况下,这可能与±30.0%一样多,因此我希望能够为精度设置可接受的边界。

我试图调整选项,但它们似乎没有影响任何东西,或者我做错了什么。我做错了什么?

提前谢谢你!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-17 21:49:06

minSamples选项添加到每个基准测试中并将其设置为更高的级别将迫使benchmark.js为每个基准测试提取更多的样本。拥有较大的样本集应减少误差(MOE)。利用样本大小来确定精确性和测试持续时间之间的平衡。

这是一个使用在jsfiddle中提供的代码的示例:

代码语言:javascript
复制
suite
.add('using extra assign', test1, { minSamples: 200 })
.add('using no extra assign', test2, { minSamples: 200 })

从这些变化中产生了以下结果:

代码语言:javascript
复制
using extra assign x 642 ops/sec ±0.74% (240 runs sampled)
using no extra assign x 637 ops/sec ±0.44% (258 runs sampled)
Fastest run(s) is(are): "using extra assign"
票数 0
EN

Stack Overflow用户

发布于 2020-04-29 05:38:17

当基准测试运行时,如果您使用计算机来做其他事情,您将得到很高的方差。要查看这一点,请运行两次基准测试:第一次运行浏览网页时,拖动GUI窗口,编译一些代码。第二次,关闭使用大量CPU周期的应用程序,启动基准测试,然后关闭计算机,直到完成为止。你会看到巨大的不同。

另一件事是以更高的优先级启动基准测试。在Unix/Linux=基础上,机器使用nice。例如,在我的macOS机器上运行:

代码语言:javascript
复制
nice -10 node comparativeBench.js
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37646060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档