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