1 |
|
2 |
|
3 | var crypto = require('crypto')
|
4 |
|
5 |
|
6 | var data = []
|
7 | var l = 10
|
8 | while(l--)
|
9 | data.push(crypto.randomBytes(1024))
|
10 |
|
11 | var State = require('../state')
|
12 | var BLState = require('../bl-state')
|
13 |
|
14 | function runBench (State, assert) {
|
15 | ;[17, 56, 123, 456, 727, 2013, 9999].forEach(function (n) {
|
16 |
|
17 |
|
18 | var state = State()
|
19 |
|
20 | for(var i = 0; i < data.length; i++)
|
21 | state.add(data[i])
|
22 |
|
23 | var out = []
|
24 | while(state.has(n))
|
25 | out.push(state.get(n))
|
26 | out.push(state.get())
|
27 |
|
28 |
|
29 | if(assert)
|
30 | require('assert').deepEqual(
|
31 | Buffer.concat(out),
|
32 | Buffer.concat(data)
|
33 | )
|
34 | })
|
35 | }
|
36 |
|
37 | var Suite = require('benchmark').Suite
|
38 |
|
39 | new Suite()
|
40 | .add('BufferListState', function () {
|
41 | runBench(BLState)
|
42 | })
|
43 | .add('State', function () {
|
44 | runBench(State)
|
45 | })
|
46 | .on('cycle', function(event) {
|
47 | console.log(String(event.target));
|
48 | })
|
49 | .on('complete', function() {
|
50 | console.log('Fastest is ' + this.filter('fastest').pluck('name'));
|
51 | })
|
52 | .run()
|