netty ByteBuf 实战
所属分类 netty
浏览量 1420
Zero-Copy-Capable Rich Byte Buffer
分类
pooled和unpooled
堆内和堆外
堆外分为 Safe和Unsafe
堆外内存2种使用方式
使用Unsafe ,需要自己释放
使用 NIO ByteBuffe ,依赖full gc 回收
堆外内存使用实例
提供两个索引 读索引 写索引
自动扩容
引用计数
池化 复用 减少碎片 提高性能
复合缓冲区 CompositeByteBuf
ByteBufAllocator
PooledByteBufAllocator
UnpooledByteBufAllocator
ByteBuf buffer(int initialCapacity, int maxCapacity);
// preferably a direct buffer which is suitable for I/O
ByteBuf ioBuffer(int initialCapacity, int maxCapacity);
ByteBuf heapBuffer(int initialCapacity, int maxCapacity);
ByteBuf directBuffer(int initialCapacity, int maxCapacity);
ByteBufUtil 工具类
hexdump 打印ByteBuf内容的十六进制表示
ByteBuf 读写实例
private static void runBufOp(ByteBuf buf){
System.out.println("\n\n*******runBufOp start");
showInfo(buf);
// 写入第一个整数 , 读索引 0 ,写索引 4
buf.writeInt(21);
showInfo(buf);
// 读取第一个整数 ,读索引 4 ,写索引 4
int tmp = buf.readInt();
System.out.println("int value "+tmp);
showInfo(buf);
int num = 7;
// 写入 0 到 6 ,7个整数 , 超出容量限制 ,自动扩容
for(int i=0;i
完整代码
https://gitee.com/dyyx/netty4demo/blob/master/src/main/java/dyyx/buf/ByteBufTest.java
上一篇
下一篇
netty性能优化点
netty ByteBuf 释放说明
eclipse使用用技巧
netty ByteBuf 泄露实例
netty使用技巧
vert.x介绍