Я могу успешно создать и запустить набор тестов, но не уверен, как получить контрольные значения для каждого выхода, this.filter('fastest').pluck('name')
в onComplete
дает мне имя самой быстрой операции, но я хочу, чтобы значение каждой функции в тесте люкс. как это получить?benchmark.js: как отображать/читать результаты (ops/sec)?
3
A
ответ
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();