From 24eb8dd882e89f959eda5374da9fc8e0cd52b3d0 Mon Sep 17 00:00:00 2001 From: Christophe Jaillet Date: Sun, 6 Jan 2013 17:52:43 +0000 Subject: [PATCH] According top my testing 'socache_mc_id2key' is 6x faster with the use 'ap_bin2hex' instead of apr_snprintf(..., "%02X" for each character. Output is *not* exactly the same. It was uppercase, now it is lowercase. According to my understanding, this is not an issue. Should it be, a call to ap_str_toupper should be added. The speedup would be less, but still significant. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1429561 13f79535-47bb-0310-9956-ffa450edef68 --- modules/cache/mod_socache_memcache.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/modules/cache/mod_socache_memcache.c b/modules/cache/mod_socache_memcache.c index ccb1bde7668..beeeec2c982 100644 --- a/modules/cache/mod_socache_memcache.c +++ b/modules/cache/mod_socache_memcache.c @@ -182,19 +182,13 @@ static int socache_mc_id2key(ap_socache_instance_t *ctx, char *key, apr_size_t keylen) { char *cp; - unsigned int n; if (idlen * 2 + ctx->taglen >= keylen) return 1; cp = apr_cpystrn(key, ctx->tag, ctx->taglen); + ap_bin2hex(id, idlen, cp); - for (n = 0; n < idlen; n++) { - apr_snprintf(cp, 3, "%02X", (unsigned) id[n]); - cp += 2; - } - - *cp = '\0'; return 0; } -- 2.47.3