gpt4 book ai didi

javascript - 如何在 benchmark.js 中为每个测试添加设置和拆卸

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:00:30 31 4
gpt4 key购买 nike

我是使用 benchmark.js 的新手,文档有点不和谐,找不到很多示例,任何人都可以确认我的代码是否正确,抱歉我不能分享整个代码(公司政策)。

setText(choice); 视为一些操作,我想比较各种选择。 (该功能独立运行良好,我已经验证过了)。虽然我正在设置设置和拆卸功能,但我不确定设置是否正确,我希望它们在每次运行 setText(choice);

之前和之后运行

使用 console.log ,我发现它们每 200 次 setText(choice); 只运行一次,我希望它们每次都运行。

此外,如何在完成套件时检索每个操作的操作数/秒。您可以在下面找到与我的基准测试套件相关的代码。

var suite = new Benchmark.Suite;
suite.add('innerText', function() {
setText('innerText');
}, {'setup':setup,'teardown':teardown})
.add('innerHTML', function() {
setText('innerHTML');
}, {'setup':setup,'teardown':teardown})
.add('textContent', function() {
setText('textContent');
}, {'setup':setup,'teardown':teardown})
.on('cycle', function(event, bench) {
log(String(bench));
}).on('complete', function() {
log('Fastest is ' + JSON.stringify(this));
}).run(false);

最佳答案

我也是benchmarkjs的新手,希望我能正确回答。

http://monsur.hossa.in/2012/12/11/benchmarkjs.html

如果你阅读了上面的文章,你会发现基准测试将进入分析和采样阶段。

它将运行多次迭代(即“测试循环”),在采样阶段执行 setText 而无需调用 setupteardown .

所以我猜设置和拆卸只是针对您在进入测试循环之前所做的事情,并不完全针对每个测试。您无法获得比测试更精细的信息-循环

与测试循环相比,您可以获得更少的粒度;您可以在整个 Benchmark 上监听事件(相对于套件级别或测试循环级别)。第二个问题,每个操作完成后的suite,可以从on complete事件中获取

.on('complete', function(event) {
//will log out the array of benchmark.suite, you can get it from each benchmark suite.
//e.g event.currentTarget[0].hz which retrieve the operation/s. for the first one.
console.log(event.currentTarget);
//equivalent of above; event.currentTarget===this; both are Benchmark.suite.
console.log(this);
})

关于javascript - 如何在 benchmark.js 中为每个测试添加设置和拆卸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26775280/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com