From 215e75c7d9457c65afea58ceae09c99fb5adc7f3 Mon Sep 17 00:00:00 2001 From: Michael Nitschinger Date: Thu, 5 Dec 2013 13:36:29 +0100 Subject: [PATCH] codec-memcache: increase default buffer size and only encode extras if set. --- .../codec/memcache/binary/BinaryMemcacheEncoder.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheEncoder.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheEncoder.java index 61d560c35b..6e9f5a7d4d 100644 --- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheEncoder.java +++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheEncoder.java @@ -27,9 +27,14 @@ import io.netty.util.CharsetUtil; public abstract class BinaryMemcacheEncoder, H extends BinaryMemcacheMessageHeader> extends MemcacheObjectEncoder { + /** + * Every binary memcache message has at least a 24 bytes header. + */ + public static final int DEFAULT_BUFFER_SIZE = 24; + @Override protected ByteBuf encodeMessage(ChannelHandlerContext ctx, M msg) { - ByteBuf buf = ctx.alloc().buffer(); + ByteBuf buf = ctx.alloc().buffer(DEFAULT_BUFFER_SIZE); encodeHeader(buf, msg.getHeader()); encodeExtras(buf, msg.getExtras()); @@ -45,7 +50,7 @@ public abstract class BinaryMemcacheEncoder, * @param extras the extras to encode. */ private static void encodeExtras(ByteBuf buf, ByteBuf extras) { - if (extras == null) { + if (extras == null || extras.readableBytes() == 0) { return; }