-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathreal.js
43 lines (38 loc) · 1.14 KB
/
real.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
var Benchmark = require('benchmark');
var suite = new Benchmark.Suite;
var blocks = require('./real/real__plain');
var BEMPRIV = require('./real/real__bem');
var objects = require('./real/real__object');
var data = require('./data/elements.json');
var BemPrivBlocks = require('./real/real__bem-priv-class');
suite
.add('BEMPRIV', function() {
BEMPRIV.json('page');
})
.add('BEM-PRIV-Class', function() {
return (new BemPrivBlocks()).json()
})
.add('BEMPRIV runtime', function() {
BEMPRIV.createRuntime({}).json('page');
})
.add('BEMPRIV light runtime', function() {
BEMPRIV.createRuntime().json('page');
})
.add('BEMPRIV heavy runtime', function() {
BEMPRIV.createRuntime(data).json('page');
})
.add('Plain Function', function() {
blocks['page'](data);
})
.add('Plain Object', function() {
objects['page'].json();
});
// add listeners
suite
.on('cycle', function(event) {
console.log(String(event.target));
})
.on('complete', function() {
console.log('Fastest is ' + this.filter('fastest')[0].name);
});
suite.run();