Netty入门教程——认识Netty
Netty入门教程2——动手搭建HttpServer
Netty入门教程3——Decoder和Encoder
Netty笔记4-如何实现长连接
Essential Netty in Action 《Netty 实战(精髓)》
Way Lau’s Open Souce Books
源码
zero copy
Netty的零拷贝体现在三个方面:
- Netty的接收和发送ByteBuffer采用DIRECT BUFFERS,使用堆外直接内存进行Socket读写,不需要进行字节缓冲区的二次拷贝。如果使用传统的堆内存(HEAP BUFFERS)进行Socket读写,JVM会将堆内存Buffer拷贝一份到直接内存中,然后才写入Socket中。相比于堆外直接内存,消息在发送过程中多了一次缓冲区的内存拷贝。
- Netty提供了组合Buffer对象,可以聚合多个ByteBuffer对象,用户可以像操作一个Buffer那样方便的对组合Buffer进行操作,避免了传统通过内存拷贝的方式将几个小Buffer合并成一个大的Buffer。
- Netty的文件传输采用了transferTo方法,它可以直接将文件缓冲区的数据发送到目标Channel,避免了传统通过循环write方式导致的内存拷贝问题。
Netty中的零拷贝
对于 Netty ByteBuf 的零拷贝(Zero Copy) 的理解