From 92ab77f8d5ae12e938a07be2280d558360c25e09 Mon Sep 17 00:00:00 2001 From: antirez Date: Thu, 8 Aug 2013 14:31:54 +0200 Subject: [PATCH] redis-benchmark: replace snprintf()+memcpy with faster code. This change was profiler-driven, but the actual effect is hard to measure in real-world redis benchmark runs. --- src/redis-benchmark.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/redis-benchmark.c b/src/redis-benchmark.c index dcd77b58..ba885d97 100644 --- a/src/redis-benchmark.c +++ b/src/redis-benchmark.c @@ -152,13 +152,18 @@ static void resetClient(client c) { } static void randomizeClientKey(client c) { - char buf[32]; - size_t i, r; + size_t i; for (i = 0; i < c->randlen; i++) { - r = random() % config.randomkeys_keyspacelen; - snprintf(buf,sizeof(buf),"%012zu",r); - memcpy(c->randptr[i],buf,12); + char *p = c->randptr[i]+11; + size_t r = random() % config.randomkeys_keyspacelen; + size_t j; + + for (j = 0; j < 12; j++) { + *p = '0'+r%10; + r/=10; + p--; + } } }