From fbda0da62d105afd1c09618c1111bc7e63691e14 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Wed, 7 Nov 2018 12:29:27 +0300 Subject: [PATCH] ByteBuf allocation optimization --- .../java/org/redisson/client/codec/ByteArrayCodec.java | 7 ++----- .../redisson/liveobject/resolver/DefaultNamingScheme.java | 4 ++-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/redisson/src/main/java/org/redisson/client/codec/ByteArrayCodec.java b/redisson/src/main/java/org/redisson/client/codec/ByteArrayCodec.java index 9c9c0c774..537168fb7 100644 --- a/redisson/src/main/java/org/redisson/client/codec/ByteArrayCodec.java +++ b/redisson/src/main/java/org/redisson/client/codec/ByteArrayCodec.java @@ -22,7 +22,7 @@ import org.redisson.client.protocol.Decoder; import org.redisson.client.protocol.Encoder; import io.netty.buffer.ByteBuf; -import io.netty.buffer.ByteBufAllocator; +import io.netty.buffer.Unpooled; /** * @@ -36,10 +36,7 @@ public class ByteArrayCodec extends BaseCodec { private final Encoder encoder = new Encoder() { @Override public ByteBuf encode(Object in) throws IOException { - byte[] payload = (byte[])in; - ByteBuf out = ByteBufAllocator.DEFAULT.buffer(payload.length); - out.writeBytes(payload); - return out; + return Unpooled.wrappedBuffer((byte[])in); } }; diff --git a/redisson/src/main/java/org/redisson/liveobject/resolver/DefaultNamingScheme.java b/redisson/src/main/java/org/redisson/liveobject/resolver/DefaultNamingScheme.java index d865f308b..4a740ab9a 100644 --- a/redisson/src/main/java/org/redisson/liveobject/resolver/DefaultNamingScheme.java +++ b/redisson/src/main/java/org/redisson/liveobject/resolver/DefaultNamingScheme.java @@ -24,6 +24,7 @@ import org.redisson.codec.JsonJacksonCodec; import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufAllocator; import io.netty.buffer.ByteBufUtil; +import io.netty.buffer.Unpooled; /** * @@ -72,9 +73,8 @@ public class DefaultNamingScheme extends AbstractNamingScheme implements NamingS public Object resolveId(String name) { String decode = name.substring(name.indexOf("{") + 1, name.indexOf("}")); - ByteBuf b = ByteBufAllocator.DEFAULT.buffer(decode.length()/2); + ByteBuf b = Unpooled.wrappedBuffer(ByteBufUtil.decodeHexDump(decode)); try { - b.writeBytes(ByteBufUtil.decodeHexDump(decode)); return codec.getMapKeyDecoder().decode(b, new State(false)); } catch (IOException ex) { throw new IllegalStateException("Unable to decode [" + decode + "] into object", ex);