Commit f6a50100 authored by Pieter Noordhuis's avatar Pieter Noordhuis
Browse files

Discard consumed part of buffer less often

parent 5962a2de
...@@ -538,15 +538,10 @@ int redisReplyReaderGetReply(void *reader, void **reply) { ...@@ -538,15 +538,10 @@ int redisReplyReaderGetReply(void *reader, void **reply) {
if (processItem(r) < 0) if (processItem(r) < 0)
break; break;
/* Discard the consumed part of the buffer. */ /* Discard part of the buffer when we've consumed at least 1k, to avoid
if (r->pos > 0) { * doing unnecessary calls to memmove() in sds.c. */
if (r->pos == r->len) { if (r->pos >= 1024) {
/* sdsrange has a quirck on this edge case. */ r->buf = sdsrange(r->buf,r->pos,r->len);
sdsfree(r->buf);
r->buf = sdsempty();
} else {
r->buf = sdsrange(r->buf,r->pos,r->len);
}
r->pos = 0; r->pos = 0;
r->len = sdslen(r->buf); r->len = sdslen(r->buf);
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment