Skip to content

Commit c9a55be

Browse files
author
Ruben Bridgewater
committed
Improve simple string and number performance by 5-15%
1 parent f4c80d7 commit c9a55be

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

lib/parser.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,20 @@ var notDecreased = 0
1616
*/
1717
function parseSimpleNumbers (parser) {
1818
var offset = parser.offset
19-
var length = parser.buffer.length
19+
var length = parser.buffer.length - 1
2020
var number = 0
21-
var sign = false
21+
var sign = 1
2222

2323
if (parser.buffer[offset] === 45) {
24-
sign = true
24+
sign = -1
2525
offset++
2626
}
2727

2828
while (offset < length) {
2929
var c1 = parser.buffer[offset++]
30-
if (c1 === 13 && parser.buffer[offset] === 10) { // \r\n
30+
if (c1 === 13) { // \r\n
3131
parser.offset = offset + 1
32-
return sign ? -number : number
32+
return sign * number
3333
}
3434
number = (number * 10) + (c1 - 48)
3535
}
@@ -103,12 +103,12 @@ function convertBufferRange (parser, start, end) {
103103
function parseSimpleStringViaOffset (parser) {
104104
var start = parser.offset
105105
var offset = parser.offset
106-
var length = parser.buffer.length
106+
var length = parser.buffer.length - 1
107107
var buffer = parser.buffer
108108

109109
while (offset < length) {
110-
if (buffer[offset++] === 10) { // \r\n
111-
return convertBufferRange(parser, start, offset - 2)
110+
if (buffer[offset++] === 13) { // \r\n
111+
return convertBufferRange(parser, start, offset - 1)
112112
}
113113
}
114114
}
@@ -207,7 +207,7 @@ function parseArray (parser) {
207207
}
208208

209209
var responses = new Array(length)
210-
var bufferLength = parser.buffer.length
210+
var bufferLength = parser.buffer.length - 3
211211
for (var i = 0; i < length; i++) {
212212
if (parser.offset >= bufferLength) {
213213
return

0 commit comments

Comments
 (0)