Skip to content

Commit

Permalink
Merge r1429561 from trunk:
Browse files Browse the repository at this point in the history
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.
Submitted by: jailletc36
Reviewed/backported by: jim


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1455220 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
Jim Jagielski committed Mar 11, 2013
1 parent c8385f0 commit f3b64b8
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 14 deletions.
7 changes: 0 additions & 7 deletions STATUS
Original file line number Diff line number Diff line change
Expand Up @@ -117,13 +117,6 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
2.4.x cumulative patch: http://people.apache.org/~jailletc36/backport5.patch (minus CHANGES for 1448171)
+1: jailletc36, igalic, jim

* mod_socache_memcache: speed up key generation by x6 using ap_bin2hex intoduced in 2.4.4
Generated keys will be in lowercase instead of uppercase, so it will trash the cache. I don't think
this is a real issue.
trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1429561
2.4.x patch: trunk patch applies.
+1: jailletc36, humbedooh, jim

* mod_charset_lite: clean up and speed up special case of logging function by x13 using ap_bin2hex intoduced in 2.4.4
It will be in lowercase instead of uppercase, but it is only for logging. I don't think this is a real issue.
trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1429582
Expand Down
8 changes: 1 addition & 7 deletions modules/cache/mod_socache_memcache.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down

0 comments on commit f3b64b8

Please sign in to comment.