From 6686c6d774fcf71fffbaeff798c997ab3eff80de Mon Sep 17 00:00:00 2001 From: filipe oliveira Date: Thu, 4 Aug 2022 08:38:20 +0100 Subject: [PATCH] Avoid the sdslen() on shared.crlf given we know its size beforehand. Improve ~3-4% of cpu cycles to lrange logic (#10987) * Avoid the sdslen() on shared.crlf given we know its size beforehand * Removed shared.crlf from sharedObjects --- src/networking.c | 8 ++++---- src/server.c | 1 - src/server.h | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/networking.c b/src/networking.c index 8e68300c2..6bf39d11a 100644 --- a/src/networking.c +++ b/src/networking.c @@ -860,7 +860,7 @@ void addReplyBigNum(client *c, const char* num, size_t len) { } else { addReplyProto(c,"(",1); addReplyProto(c,num,len); - addReply(c,shared.crlf); + addReplyProto(c,"\r\n",2); } } @@ -991,21 +991,21 @@ void addReplyBulkLen(client *c, robj *obj) { void addReplyBulk(client *c, robj *obj) { addReplyBulkLen(c,obj); addReply(c,obj); - addReply(c,shared.crlf); + addReplyProto(c,"\r\n",2); } /* Add a C buffer as bulk reply */ void addReplyBulkCBuffer(client *c, const void *p, size_t len) { addReplyLongLongWithPrefix(c,len,'$'); addReplyProto(c,p,len); - addReply(c,shared.crlf); + addReplyProto(c,"\r\n",2); } /* Add sds to reply (takes ownership of sds and frees it) */ void addReplyBulkSds(client *c, sds s) { addReplyLongLongWithPrefix(c,sdslen(s),'$'); addReplySds(c,s); - addReply(c,shared.crlf); + addReplyProto(c,"\r\n",2); } /* Set sds to a deferred reply (for symmetry with addReplyBulkSds it also frees the sds) */ diff --git a/src/server.c b/src/server.c index 57c1d2f8e..27f2be905 100644 --- a/src/server.c +++ b/src/server.c @@ -1680,7 +1680,6 @@ void createSharedObjects(void) { int j; /* Shared command responses */ - shared.crlf = createObject(OBJ_STRING,sdsnew("\r\n")); shared.ok = createObject(OBJ_STRING,sdsnew("+OK\r\n")); shared.emptybulk = createObject(OBJ_STRING,sdsnew("$0\r\n\r\n")); shared.czero = createObject(OBJ_STRING,sdsnew(":0\r\n")); diff --git a/src/server.h b/src/server.h index fb96987f4..cb4954e13 100644 --- a/src/server.h +++ b/src/server.h @@ -1222,7 +1222,7 @@ struct sentinelConfig { }; struct sharedObjectsStruct { - robj *crlf, *ok, *err, *emptybulk, *czero, *cone, *pong, *space, + robj *ok, *err, *emptybulk, *czero, *cone, *pong, *space, *queued, *null[4], *nullarray[4], *emptymap[4], *emptyset[4], *emptyarray, *wrongtypeerr, *nokeyerr, *syntaxerr, *sameobjecterr, *outofrangeerr, *noscripterr, *loadingerr,