X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/f6da155bde4c187325deee8b40fe41d45f40468d..7383c3b12920c6ae20f7c64c5db92f59e2b02aa5:/src/redis-benchmark.c diff --git a/src/redis-benchmark.c b/src/redis-benchmark.c index 36f27540..8d72573d 100644 --- a/src/redis-benchmark.c +++ b/src/redis-benchmark.c @@ -1,6 +1,6 @@ /* Redis benchmark utility. * - * Copyright (c) 2009-2010, Salvatore Sanfilippo + * Copyright (c) 2009-2012, Salvatore Sanfilippo * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -196,10 +196,15 @@ static void readHandler(aeEventLoop *el, int fd, void *privdata, int mask) { exit(1); } + freeReplyObject(reply); + if (config.requests_finished < config.requests) config.latency[config.requests_finished++] = c->latency; c->pending--; - if (c->pending == 0) clientDone(c); + if (c->pending == 0) { + clientDone(c); + break; + } } else { break; } @@ -261,6 +266,8 @@ static client createClient(char *cmd, size_t len) { fprintf(stderr,"%s: %s\n",config.hostsocket,c->context->errstr); exit(1); } + /* Suppress hiredis cleanup of unused buffers for max speed. */ + c->context->reader->maxbuf = 0; /* Queue N requests accordingly to the pipeline size. */ c->obuf = sdsempty(); for (j = 0; j < config.pipeline; j++)