2
2
3
3
/* eslint handle-callback-err: 0 */
4
4
5
- var intercept = require ( 'intercept-stdout ' )
6
- var Benchmark = require ( 'benchmark' )
7
- var suite = new Benchmark . Suite ( )
8
- var Parser = require ( './../ ' )
5
+ const Benchmark = require ( 'benchmark ' )
6
+ const suite = new Benchmark . Suite ( )
7
+ const Parser = require ( './../' )
8
+ const HiredisParser = require ( '../test/hiredis ' )
9
9
10
10
function returnError ( error ) { }
11
11
function checkReply ( error , res ) { }
12
- function shuffle ( array ) {
13
- var currentIndex = array . length
14
- var temporaryValue
15
- var randomIndex
16
-
17
- // While there remain elements to shuffle...
18
- while ( currentIndex !== 0 ) {
19
- // Pick a remaining element...
20
- randomIndex = Math . floor ( Math . random ( ) * currentIndex )
21
- currentIndex -= 1
22
-
23
- // And swap it with the current element.
24
- temporaryValue = array [ currentIndex ]
25
- array [ currentIndex ] = array [ randomIndex ]
26
- array [ randomIndex ] = temporaryValue
27
- }
28
-
29
- return array
30
- }
31
12
32
- // Suppress hiredis warnings
33
- intercept ( function ( ) { } , function ( ) { return '' } )
34
-
35
- var startBuffer = new Buffer ( '$100\r\nabcdefghij' )
36
- var chunkBuffer = new Buffer ( 'abcdefghijabcdefghijabcdefghij' )
37
- var stringBuffer = new Buffer ( '+testing a simple string\r\n' )
38
- var integerBuffer = new Buffer ( ':1237884\r\n' )
39
- var bigIntegerBuffer = new Buffer ( ':184467440737095516171234567890\r\n' ) // 2^64 + 1
40
- var errorBuffer = new Buffer ( '-Error ohnoesitbroke\r\n' )
41
- var endBuffer = new Buffer ( '\r\n' )
42
- var lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, ' +
13
+ const startBuffer = new Buffer ( '$100\r\nabcdefghij' )
14
+ const chunkBuffer = new Buffer ( 'abcdefghijabcdefghijabcdefghij' )
15
+ const stringBuffer = new Buffer ( '+testing a simple string\r\n' )
16
+ const integerBuffer = new Buffer ( ':1237884\r\n' )
17
+ const bigIntegerBuffer = new Buffer ( ':184467440737095516171234567890\r\n' ) // 2^64 + 1
18
+ const errorBuffer = new Buffer ( '-Error ohnoesitbroke\r\n' )
19
+ const endBuffer = new Buffer ( '\r\n' )
20
+ const lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, ' +
43
21
'sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ' +
44
22
'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ' +
45
23
'ut aliquip ex ea commodo consequat. Duis aute irure dolor in' // 256 chars
46
- var bigStringArray = ( new Array ( Math . pow ( 2 , 16 ) / lorem . length ) . join ( lorem + ' ' ) ) . split ( ' ' ) // Math.pow(2, 16) chars long
47
- var startBigBuffer = new Buffer ( '$' + ( 4 * 1024 * 1024 ) + '\r\n' )
24
+ const bigStringArray = ( new Array ( Math . pow ( 2 , 16 ) / lorem . length ) . join ( lorem + ' ' ) ) . split ( ' ' ) // Math.pow(2, 16) chars long
25
+ const startBigBuffer = new Buffer ( '$' + ( 4 * 1024 * 1024 ) + '\r\n' )
48
26
49
- var chunks = new Array ( 64 )
27
+ const chunks = new Array ( 64 )
50
28
for ( var i = 0 ; i < 64 ; i ++ ) {
51
- chunks [ i ] = new Buffer ( shuffle ( bigStringArray ) . join ( ' ' ) + '.' ) // Math.pow(2, 16) chars long
29
+ chunks [ i ] = new Buffer ( bigStringArray . join ( ' ' ) + '.' ) // Math.pow(2, 16) chars long
52
30
}
53
31
54
- var arraySize = 100
32
+ const arraySize = 100
55
33
var array = '*' + arraySize + '\r\n'
56
34
var size = 0
57
35
for ( i = 0 ; i < arraySize ; i ++ ) {
@@ -60,10 +38,10 @@ for (i = 0; i < arraySize; i++) {
60
38
array += size + '\r\n' + lorem . slice ( 0 , size ) + '\r\n'
61
39
}
62
40
63
- var arrayBuffer = new Buffer ( array )
41
+ const arrayBuffer = new Buffer ( array )
64
42
65
- var bigArraySize = 160
66
- var bigArrayChunks = [ new Buffer ( '*1\r\n*1\r\n*' + bigArraySize ) ]
43
+ const bigArraySize = 160
44
+ const bigArrayChunks = [ new Buffer ( '*1\r\n*1\r\n*' + bigArraySize ) ]
67
45
for ( i = 0 ; i < bigArraySize ; i ++ ) {
68
46
// A chunk has a maximum size of 2^16 bytes.
69
47
size = 65000 + i
@@ -76,28 +54,24 @@ for (i = 0; i < bigArraySize; i++) {
76
54
}
77
55
bigArrayChunks . push ( new Buffer ( '\r\n' ) )
78
56
79
- var chunkedStringPart1 = new Buffer ( '+foobar' )
80
- var chunkedStringPart2 = new Buffer ( 'bazEND\r\n' )
57
+ const chunkedStringPart1 = new Buffer ( '+foobar' )
58
+ const chunkedStringPart2 = new Buffer ( 'bazEND\r\n' )
81
59
82
- var options = {
60
+ const options = {
83
61
returnReply : checkReply ,
84
62
returnError : returnError ,
85
63
returnFatalError : returnError
86
64
}
87
- var parser = new Parser ( options )
65
+ const parser = new Parser ( options )
66
+ const parserHiRedis = new HiredisParser ( options )
88
67
89
68
options . returnBuffers = true
90
- var parserBuffer = new Parser ( options )
91
-
92
- options . name = 'hiredis'
93
- var parserHiRedisBuffer = new Parser ( options )
69
+ const parserBuffer = new Parser ( options )
70
+ const parserHiRedisBuffer = new HiredisParser ( options )
94
71
95
72
delete options . returnBuffers
96
- var parserHiRedis = new Parser ( options )
97
-
98
- delete options . name
99
73
options . stringNumbers = true
100
- var parserStr = new Parser ( options )
74
+ const parserStr = new Parser ( options )
101
75
102
76
// BULK STRINGS
103
77
@@ -109,14 +83,6 @@ suite.add('HIREDIS: $ multiple chunks in a bulk string', function () {
109
83
parserHiRedis . execute ( endBuffer )
110
84
} )
111
85
112
- suite . add ( 'HIREDIS BUF: $ multiple chunks in a bulk string' , function ( ) {
113
- parserHiRedisBuffer . execute ( startBuffer )
114
- parserHiRedisBuffer . execute ( chunkBuffer )
115
- parserHiRedisBuffer . execute ( chunkBuffer )
116
- parserHiRedisBuffer . execute ( chunkBuffer )
117
- parserHiRedisBuffer . execute ( endBuffer )
118
- } )
119
-
120
86
suite . add ( 'JS PARSER: $ multiple chunks in a bulk string' , function ( ) {
121
87
parser . execute ( startBuffer )
122
88
parser . execute ( chunkBuffer )
@@ -125,6 +91,14 @@ suite.add('JS PARSER: $ multiple chunks in a bulk string', function () {
125
91
parser . execute ( endBuffer )
126
92
} )
127
93
94
+ suite . add ( 'HIREDIS BUF: $ multiple chunks in a bulk string' , function ( ) {
95
+ parserHiRedisBuffer . execute ( startBuffer )
96
+ parserHiRedisBuffer . execute ( chunkBuffer )
97
+ parserHiRedisBuffer . execute ( chunkBuffer )
98
+ parserHiRedisBuffer . execute ( chunkBuffer )
99
+ parserHiRedisBuffer . execute ( endBuffer )
100
+ } )
101
+
128
102
suite . add ( 'JS PARSER BUF: $ multiple chunks in a bulk string' , function ( ) {
129
103
parserBuffer . execute ( startBuffer )
130
104
parserBuffer . execute ( chunkBuffer )
@@ -140,16 +114,16 @@ suite.add('\nHIREDIS: + multiple chunks in a string', function () {
140
114
parserHiRedis . execute ( chunkedStringPart2 )
141
115
} )
142
116
143
- suite . add ( 'HIREDIS BUF: + multiple chunks in a string' , function ( ) {
144
- parserHiRedisBuffer . execute ( chunkedStringPart1 )
145
- parserHiRedisBuffer . execute ( chunkedStringPart2 )
146
- } )
147
-
148
117
suite . add ( 'JS PARSER: + multiple chunks in a string' , function ( ) {
149
118
parser . execute ( chunkedStringPart1 )
150
119
parser . execute ( chunkedStringPart2 )
151
120
} )
152
121
122
+ suite . add ( 'HIREDIS BUF: + multiple chunks in a string' , function ( ) {
123
+ parserHiRedisBuffer . execute ( chunkedStringPart1 )
124
+ parserHiRedisBuffer . execute ( chunkedStringPart2 )
125
+ } )
126
+
153
127
suite . add ( 'JS PARSER BUF: + multiple chunks in a string' , function ( ) {
154
128
parserBuffer . execute ( chunkedStringPart1 )
155
129
parserBuffer . execute ( chunkedStringPart2 )
@@ -165,14 +139,6 @@ suite.add('\nHIREDIS: $ 4mb bulk string', function () {
165
139
parserHiRedis . execute ( endBuffer )
166
140
} )
167
141
168
- suite . add ( 'HIREDIS BUF: $ 4mb bulk string' , function ( ) {
169
- parserHiRedisBuffer . execute ( startBigBuffer )
170
- for ( var i = 0 ; i < 64 ; i ++ ) {
171
- parserHiRedisBuffer . execute ( chunks [ i ] )
172
- }
173
- parserHiRedisBuffer . execute ( endBuffer )
174
- } )
175
-
176
142
suite . add ( 'JS PARSER: $ 4mb bulk string' , function ( ) {
177
143
parser . execute ( startBigBuffer )
178
144
for ( var i = 0 ; i < 64 ; i ++ ) {
@@ -181,6 +147,14 @@ suite.add('JS PARSER: $ 4mb bulk string', function () {
181
147
parser . execute ( endBuffer )
182
148
} )
183
149
150
+ suite . add ( 'HIREDIS BUF: $ 4mb bulk string' , function ( ) {
151
+ parserHiRedisBuffer . execute ( startBigBuffer )
152
+ for ( var i = 0 ; i < 64 ; i ++ ) {
153
+ parserHiRedisBuffer . execute ( chunks [ i ] )
154
+ }
155
+ parserHiRedisBuffer . execute ( endBuffer )
156
+ } )
157
+
184
158
suite . add ( 'JS PARSER BUF: $ 4mb bulk string' , function ( ) {
185
159
parserBuffer . execute ( startBigBuffer )
186
160
for ( var i = 0 ; i < 64 ; i ++ ) {
@@ -195,14 +169,14 @@ suite.add('\nHIREDIS: + simple string', function () {
195
169
parserHiRedis . execute ( stringBuffer )
196
170
} )
197
171
198
- suite . add ( 'HIREDIS BUF: + simple string' , function ( ) {
199
- parserHiRedisBuffer . execute ( stringBuffer )
200
- } )
201
-
202
172
suite . add ( 'JS PARSER: + simple string' , function ( ) {
203
173
parser . execute ( stringBuffer )
204
174
} )
205
175
176
+ suite . add ( 'HIREDIS BUF: + simple string' , function ( ) {
177
+ parserHiRedisBuffer . execute ( stringBuffer )
178
+ } )
179
+
206
180
suite . add ( 'JS PARSER BUF: + simple string' , function ( ) {
207
181
parserBuffer . execute ( stringBuffer )
208
182
} )
@@ -241,14 +215,14 @@ suite.add('\nHIREDIS: * array', function () {
241
215
parserHiRedis . execute ( arrayBuffer )
242
216
} )
243
217
244
- suite . add ( 'HIREDIS BUF: * array' , function ( ) {
245
- parserHiRedisBuffer . execute ( arrayBuffer )
246
- } )
247
-
248
218
suite . add ( 'JS PARSER: * array' , function ( ) {
249
219
parser . execute ( arrayBuffer )
250
220
} )
251
221
222
+ suite . add ( 'HIREDIS BUF: * array' , function ( ) {
223
+ parserHiRedisBuffer . execute ( arrayBuffer )
224
+ } )
225
+
252
226
suite . add ( 'JS PARSER BUF: * array' , function ( ) {
253
227
parserBuffer . execute ( arrayBuffer )
254
228
} )
@@ -261,15 +235,15 @@ suite.add('\nHIREDIS: * big nested array', function () {
261
235
}
262
236
} )
263
237
264
- suite . add ( 'HIREDIS BUF : * big nested array' , function ( ) {
238
+ suite . add ( 'JS PARSER : * big nested array' , function ( ) {
265
239
for ( var i = 0 ; i < bigArrayChunks . length ; i ++ ) {
266
- parserHiRedisBuffer . execute ( bigArrayChunks [ i ] )
240
+ parser . execute ( bigArrayChunks [ i ] )
267
241
}
268
242
} )
269
243
270
- suite . add ( 'JS PARSER : * big nested array' , function ( ) {
244
+ suite . add ( 'HIREDIS BUF : * big nested array' , function ( ) {
271
245
for ( var i = 0 ; i < bigArrayChunks . length ; i ++ ) {
272
- parser . execute ( bigArrayChunks [ i ] )
246
+ parserHiRedisBuffer . execute ( bigArrayChunks [ i ] )
273
247
}
274
248
} )
275
249
0 commit comments