标签:
在使用NIO时需要使用缓冲区,常用的缓冲区就是JDK NIO类库提供的java.nio.Buffer,而主要使用的是ByteBuffer。但是ByteBuffer也有局限性:
需要注意的是,调用discardReadBytes会发生字节数组的内存复制,所以频繁调用将会导致性能下降。
ByteBuf的主要类继承关系:
从内存回收角度看,ByteBuf分2类:
基于对象池的ByteBuf和普通ByteBuf。
两者的主要区别就是基于对象池的ByteBuf可以重用ByteBuf对象,它自己维护一个内存池,可以循环利用创建的ByteBuf,提高内存使用效率,降低由于高负载导致的频繁GC。测试表明使用内存池后的Netty在高负载、大并发的冲击下内存和GC更加平稳。
标签:
原文地址:http://blog.csdn.net/zero__007/article/details/51326657