SDS: make sdscatfmt() faster by pre-allocating a bit.

This commit is contained in:
antirez 2019-10-02 11:27:21 +02:00
parent 40acb4412d
commit f49f0a6f72
1 changed files with 4 additions and 0 deletions

View File

@ -603,6 +603,10 @@ sds sdscatfmt(sds s, char const *fmt, ...) {
long i;
va_list ap;
/* To avoid continuous reallocations, let's start with a buffer that
* can hold at least two times the format string itself. It's not the
* best heuristic but seems to work in practice. */
s = sdsMakeRoomFor(s, initlen + strlen(fmt)*2);
va_start(ap,fmt);
f = fmt; /* Next format specifier byte to process. */
i = initlen; /* Position of the next byte to write to dest str. */