1
0
mirror of https://github.com/redis/go-redis.git synced 2025-07-29 17:41:15 +03:00

parser: Optimize multi bulk request parsing.

This commit is contained in:
Vladimir Mihailenco
2012-08-20 12:00:59 +03:00
parent 5e2cce4853
commit 2f5c2aa6be
3 changed files with 25 additions and 21 deletions

View File

@ -114,16 +114,12 @@ func _parseReply(rd reader, useIfaceSlice bool) (interface{}, error) {
}
if useIfaceSlice {
vals := make([]interface{}, 0)
if len(line) == 2 && line[1] == '0' {
return vals, nil
}
numReplies, err := strconv.ParseInt(string(line[1:]), 10, 64)
if err != nil {
return nil, err
}
vals := make([]interface{}, 0, numReplies)
for i := int64(0); i < numReplies; i++ {
v, err := parseReply(rd)
if err == Nil {
@ -137,16 +133,12 @@ func _parseReply(rd reader, useIfaceSlice bool) (interface{}, error) {
return vals, nil
} else {
vals := make([]string, 0)
if len(line) == 2 && line[1] == '0' {
return vals, nil
}
numReplies, err := strconv.ParseInt(string(line[1:]), 10, 64)
if err != nil {
return nil, err
}
vals := make([]string, 0, numReplies)
for i := int64(0); i < numReplies; i++ {
v, err := parseReply(rd)
if err != nil {