每次运行我的基准测试代码时(不仅仅是每个周期)如何获取Benchmark.js进行设置/拆卸?
我正在尝试使用Benchmark.js
对对象的成员函数进行基准测试。几个因素使测试功能变得困难:
- 对象的创建是异步的(我可以模拟那一部分)
- 成员函数很昂贵
- 成员函数足够聪明,只能运行一次
让我们说它看起来像这样:
class Something {
constructor(){
// async ops
this.expensiveValue = null;
}
expensiveOperation () {
if (this.expensiveValue === null) {
// Do expensive operation
this.expensiveValue = result; // a non-null value
}
}
}
现在,我要基准expensiveOperation
。但是由于其局限性,每次运行我还需要“重置”该对象。
据我所知,benchmark
不支持每次运行设置。我觉得将重设作为运行的一部分也不是最佳实践,因为它会污染我实际试图进行基准测试的内容。
我看过Benchmark.setup
,但这仅按周期执行,而不是按运行。
我想念什么吗?我可以使用另一个benchmark
选项吗?还是我处理方法不正确?
每次运行我的基准测试代码时(不仅仅是每个周期)如何获取Benchmark.js进行设置/拆卸?
我正在尝试使用Benchmark.js
对对象的成员函数进行基准测试。几个因素使测试功能变得困难:
- 对象的创建是异步的(我可以模拟那一部分)
- 成员函数很昂贵
- 成员函数足够聪明,只能运行一次
让我们说它看起来像这样:
class Something {
constructor(){
// async ops
this.expensiveValue = null;
}
expensiveOperation () {
if (this.expensiveValue === null) {
// Do expensive operation
this.expensiveValue = result; // a non-null value
}
}
}
现在,我要基准expensiveOperation
。但是由于其局限性,每次运行我还需要“重置”该对象。
据我所知,benchmark
不支持每次运行设置。我觉得将重设作为运行的一部分也不是最佳实践,因为它会污染我实际试图进行基准测试的内容。
我看过Benchmark.setup
,但这仅按周期执行,而不是按运行。
我想念什么吗?我可以使用另一个benchmark
选项吗?还是我处理方法不正确?
发布评论