传统I/O操作
整个过程,用户空间缓冲区只是临时存放数据的载体,不对数据操作。
追求高性能、低延迟的瓶颈比较大。
改进1:操作系统意义上的0拷贝
相比上一个,减少了用户空间和内核空间间的数据拷贝
改进2:
真正意义上的0拷贝:
实例:
需求:实现文件读取发送,有C、S,C向S发送文件,S读取,用两种(传统io和零拷贝)方式,取中位数比较性能。
https://github.com/chris1132/netty_lecture/tree/master/src/main/java/com/chovy/zerocopy
两种对比:取多次平均值,速度大概差了10倍