perf[net]: 网络协议序列化的bytebuf使用池化对象

This commit is contained in:
jaysunxiao
2021-07-14 18:28:26 +08:00
parent 975225d505
commit e636ad342a
3 changed files with 2 additions and 9 deletions
@@ -21,7 +21,6 @@ import com.zfoo.net.util.SessionUtils;
import com.zfoo.protocol.util.JsonUtils;
import com.zfoo.protocol.util.StringUtils;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.socket.DatagramPacket;
import io.netty.handler.codec.MessageToMessageCodec;
@@ -85,9 +84,7 @@ public class UdpCodecHandler extends MessageToMessageCodec<DatagramPacket, Encod
@Override
protected void encode(ChannelHandlerContext channelHandlerContext, EncodedPacketInfo out, List<Object> list) {
try {
ByteBuf byteBuf = Unpooled.directBuffer();
byteBuf.clear();
var byteBuf = channelHandlerContext.alloc().ioBuffer();
var udpPacketAttachment = (UdpPacketAttachment) out.getPacketAttachment();
NetContext.getPacketService().write(byteBuf, out.getPacket(), out.getPacketAttachment());
@@ -21,7 +21,6 @@ import com.zfoo.net.util.SessionUtils;
import com.zfoo.protocol.util.JsonUtils;
import com.zfoo.protocol.util.StringUtils;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToMessageCodec;
import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame;
@@ -86,8 +85,7 @@ public class WebSocketCodecHandler extends MessageToMessageCodec<WebSocketFrame,
@Override
protected void encode(ChannelHandlerContext channelHandlerContext, EncodedPacketInfo out, List<Object> list) {
try {
ByteBuf byteBuf = Unpooled.directBuffer();
byteBuf.clear();
var byteBuf = channelHandlerContext.alloc().ioBuffer();
NetContext.getPacketService().write(byteBuf, out.getPacket(), out.getPacketAttachment());
list.add(new BinaryWebSocketFrame(byteBuf));
@@ -126,8 +126,6 @@ public class PacketService implements IPacketService {
return;
}
buffer.clear();
// 预留写入包的长度,一个int字节大小
buffer.writeInt(PACKET_HEAD_LENGTH);