2014-11-07 4 views
3

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

ответ

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();