diff options
author | michael-grunder <michael.grunder@gmail.com> | 2014-08-01 16:18:36 -0700 |
---|---|---|
committer | Matt Stancliff <matt@genges.com> | 2015-01-05 11:21:38 -0500 |
commit | 40f7035ba47c3cdf161e3801d89fcc8afbd0c458 (patch) | |
tree | bbff5a29cf1f73f3b1581bfdba82301078320b81 /sds.h | |
parent | 3315c098394252cbbe00c0a69ea159f345f4f8b1 (diff) |
Improve redisAppendCommandArgv performance
OK, perhaps the second time is a charm. I forgot that I had
hiredis forked from a long time ago, so the initial pull
request was hosed. :)
* Pulled in sdscatfmt() from Redis, and modified it to accept a
size_t (%T) style format specifier.
* Pulled in sdsll2str() and sdsull2str() from Redis (needed by
sdscatfmt).
* Added a new method, redisFormatSdsCommandArgv() which takes
and sds* as the target, rather than char* (and uses sdscatfmt
instead of sprintf for the construction).
I get roughly the following improvement:
Old: 1.044806
New: 0.481620
The benchmark code itself can be found here:
https://gist.github.com/michael-grunder/c92ef31bb632b3d0ad81
Closes #260
Diffstat (limited to 'sds.h')
-rw-r--r-- | sds.h | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -76,6 +76,7 @@ sds sdscatprintf(sds s, const char *fmt, ...) sds sdscatprintf(sds s, const char *fmt, ...); #endif +sds sdscatfmt(sds s, char const *fmt, ...); void sdstrim(sds s, const char *cset); void sdsrange(sds s, int start, int end); void sdsupdatelen(sds s); |