benchmarking with different number of LRANGE elements. Ability to change the glue output buffer limit by #define

This commit is contained in:
antirez 2009-11-18 19:41:25 +01:00
parent ccb5332c5e
commit cc30e368a3
2 changed files with 21 additions and 2 deletions

View File

@ -574,6 +574,24 @@ int main(int argc, char **argv) {
aeMain(config.el);
endBenchmark("LRANGE (first 300 elements)");
prepareForBenchmark();
c = createClient();
if (!c) exit(1);
c->obuf = sdscat(c->obuf,"LRANGE mylist 0 449\r\n");
prepareClientForReply(c,REPLY_MBULK);
createMissingClients(c);
aeMain(config.el);
endBenchmark("LRANGE (first 450 elements)");
prepareForBenchmark();
c = createClient();
if (!c) exit(1);
c->obuf = sdscat(c->obuf,"LRANGE mylist 0 599\r\n");
prepareClientForReply(c,REPLY_MBULK);
createMissingClients(c);
aeMain(config.el);
endBenchmark("LRANGE (first 600 elements)");
printf("\n");
} while(config.loop);

View File

@ -1349,6 +1349,7 @@ static void freeClient(redisClient *c) {
zfree(c);
}
#define GLUEREPLY_UP_TO (1024)
static void glueReplyBuffersIfNeeded(redisClient *c) {
int totlen = 0;
listNode *ln;
@ -1360,10 +1361,10 @@ static void glueReplyBuffersIfNeeded(redisClient *c) {
totlen += sdslen(o->ptr);
/* This optimization makes more sense if we don't have to copy
* too much data */
if (totlen > 1024) return;
if (totlen > GLUEREPLY_UP_TO) return;
}
if (totlen > 0) {
char buf[1024];
char buf[GLUEREPLY_UP_TO];
int copylen = 0;
listRewind(c->reply);