我能够成功创建和运行基准测试套件,但不知道如何获得每个输出的基准值,this.filter('fastest').pluck('name')
中的onComplete
给出了最快操作的名称,但我想要测试套件中每个函数的ops/sec
值。怎么弄?
答案 0 :(得分:6)
在onComplete
回调中,您可以通过this
关键字(将引用当前BenchmarkSuit对象)访问您的基准测试,如下所示:
var bench1 = this[0];
var bench2 = this[1];
...
var benchN = this[N-1];
Eeach bench
是Benchmark的实例。因此,您可以获得所需的任何信息(请参阅Benchmark.prototype)。要获得ops/sec
值,请使用基准的.hz
属性。一个更好理解的小例子:
new Benchmark.Suite()
.add('test1', function() {
// some code
})
.add('test2', function() {
// some code
})
.on('complete', function() {
var benchTest1 = this[0]; // gets benchmark for test1
var benchTest2 = this[1]; // gets benchmark for test2
console.log(benchTest1.hz); // ops/sec
// benchmark info in format:
// test2 x 1,706,681 ops/sec ±1.18% (92 runs sampled)
console.log(benchTest2.toString());
console.log('Fastest is ' + this.filter('fastest').pluck('name'));
})
.run();