mirror of https://mirror.osredm.com/root/redis.git
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
This commit is contained in:
parent
f3588fbcca
commit
6686c6d774
|
@ -860,7 +860,7 @@ void addReplyBigNum(client *c, const char* num, size_t len) {
|
||||||
} else {
|
} else {
|
||||||
addReplyProto(c,"(",1);
|
addReplyProto(c,"(",1);
|
||||||
addReplyProto(c,num,len);
|
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) {
|
void addReplyBulk(client *c, robj *obj) {
|
||||||
addReplyBulkLen(c,obj);
|
addReplyBulkLen(c,obj);
|
||||||
addReply(c,obj);
|
addReply(c,obj);
|
||||||
addReply(c,shared.crlf);
|
addReplyProto(c,"\r\n",2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Add a C buffer as bulk reply */
|
/* Add a C buffer as bulk reply */
|
||||||
void addReplyBulkCBuffer(client *c, const void *p, size_t len) {
|
void addReplyBulkCBuffer(client *c, const void *p, size_t len) {
|
||||||
addReplyLongLongWithPrefix(c,len,'$');
|
addReplyLongLongWithPrefix(c,len,'$');
|
||||||
addReplyProto(c,p,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) */
|
/* Add sds to reply (takes ownership of sds and frees it) */
|
||||||
void addReplyBulkSds(client *c, sds s) {
|
void addReplyBulkSds(client *c, sds s) {
|
||||||
addReplyLongLongWithPrefix(c,sdslen(s),'$');
|
addReplyLongLongWithPrefix(c,sdslen(s),'$');
|
||||||
addReplySds(c,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) */
|
/* Set sds to a deferred reply (for symmetry with addReplyBulkSds it also frees the sds) */
|
||||||
|
|
|
@ -1680,7 +1680,6 @@ void createSharedObjects(void) {
|
||||||
int j;
|
int j;
|
||||||
|
|
||||||
/* Shared command responses */
|
/* Shared command responses */
|
||||||
shared.crlf = createObject(OBJ_STRING,sdsnew("\r\n"));
|
|
||||||
shared.ok = createObject(OBJ_STRING,sdsnew("+OK\r\n"));
|
shared.ok = createObject(OBJ_STRING,sdsnew("+OK\r\n"));
|
||||||
shared.emptybulk = createObject(OBJ_STRING,sdsnew("$0\r\n\r\n"));
|
shared.emptybulk = createObject(OBJ_STRING,sdsnew("$0\r\n\r\n"));
|
||||||
shared.czero = createObject(OBJ_STRING,sdsnew(":0\r\n"));
|
shared.czero = createObject(OBJ_STRING,sdsnew(":0\r\n"));
|
||||||
|
|
|
@ -1222,7 +1222,7 @@ struct sentinelConfig {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sharedObjectsStruct {
|
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],
|
*queued, *null[4], *nullarray[4], *emptymap[4], *emptyset[4],
|
||||||
*emptyarray, *wrongtypeerr, *nokeyerr, *syntaxerr, *sameobjecterr,
|
*emptyarray, *wrongtypeerr, *nokeyerr, *syntaxerr, *sameobjecterr,
|
||||||
*outofrangeerr, *noscripterr, *loadingerr,
|
*outofrangeerr, *noscripterr, *loadingerr,
|
||||||
|
|
Loading…
Reference in New Issue