summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2020-05-01 23:57:11 +0200
committerantirez <antirez@gmail.com>2020-05-01 23:57:11 +0200
commit365316aa59545d90de4e105cec57f22aa5b52ff9 (patch)
tree1d5ea4def2284a8a0444f9be9c9d2fcfde38ba4f
parentfe980e2334ff3908c5d00543c8000b4be78421cf (diff)
downloadredis-365316aa59545d90de4e105cec57f22aa5b52ff9.tar.gz
Revert "optimize memory usage of deferred replies"
This reverts commit fb732f7a944a4d4c90bb7375cb6030e88211f5aa.
-rw-r--r--src/networking.c31
1 files changed, 0 insertions, 31 deletions
diff --git a/src/networking.c b/src/networking.c
index d4c0306c3..c4a277e0a 100644
--- a/src/networking.c
+++ b/src/networking.c
@@ -436,36 +436,6 @@ void addReplyStatusFormat(client *c, const char *fmt, ...) {
sdsfree(s);
}
-/* Sometimes we are forced to create a new reply node, and we can't append to
- * the previous one, when that happens, we wanna try to trim the unused space
- * at the end of the last reply node which we won't use anymore. */
-void trimReplyUnusedTailSpace(client *c) {
- listNode *ln = listLast(c->reply);
- clientReplyBlock *tail = ln? listNodeValue(ln): NULL;
-
- /* Note that 'tail' may be NULL even if we have a tail node, becuase when
- * addDeferredMultiBulkLength() is used */
- if (!tail) return;
-
- /* We only try to trim the space is relatively high (more than a 1/4 of the
- * allocation), otherwise there's a high chance realloc will NOP.
- * Also, to avoid large memmove which happens as part of realloc, we only do
- * that if the used part is small. */
- if (tail->size - tail->used > tail->size / 4 &&
- tail->used < PROTO_REPLY_CHUNK_BYTES)
- {
- size_t old_size = tail->size;
- tail = zrealloc(tail, tail->used + sizeof(clientReplyBlock));
- /* If realloc was a NOP, we got the same value which has internal frag */
- if (tail == listNodeValue(ln)) return;
- /* take over the allocation's internal fragmentation (at least for
- * memory usage tracking) */
- tail->size = zmalloc_usable(tail) - sizeof(clientReplyBlock);
- c->reply_bytes += tail->size - old_size;
- listNodeValue(ln) = tail;
- }
-}
-
/* Adds an empty object to the reply list that will contain the multi bulk
* length, which is not known when this function is called. */
void *addReplyDeferredLen(client *c) {
@@ -473,7 +443,6 @@ void *addReplyDeferredLen(client *c) {
* ready to be sent, since we are sure that before returning to the
* event loop setDeferredAggregateLen() will be called. */
if (prepareClientToWrite(c) != C_OK) return NULL;
- trimReplyUnusedTailSpace(c);
listAddNodeTail(c->reply,NULL); /* NULL is our placeholder. */
return listLast(c->reply);
}