I am able to successfully create and run benchmark suite, but not sure how to get the benchmark values of each output, this.filter('fastest').pluck('name') in onComplete gives me the name of the fastest operation, but I want the ops/sec value of each function in the test suite. how to get that?
Asked
Active
Viewed 1,869 times
4
1 Answers
6
In your onComplete callback you can access your benchmarks through this keyword (which will reference to the current BenchmarkSuite object) like this:
var bench1 = this[0];
var bench2 = this[1];
...
var benchN = this[N-1];
Each bench is instance of Benchmark. So you can get any information you want (see Benchmark.prototype ). To get ops/sec value use .hz property of benchmark. A small example for better understanding:
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();
Brandon Culley
- 5,219
- 1
- 28
- 28
alexpods
- 47,475
- 10
- 100
- 94