什么是零拷贝

4 阅读1分钟

零拷贝(Zero-Copy) 是一种技术,目的是在进行数据传输时,减少 CPU 参与的内存拷贝次数,提高性能。

传统的数据传输(比如发送文件到网络)需要经过多次拷贝:

  1. 磁盘数据读到内核缓冲区;

  2. 内核缓冲区拷贝到用户态缓冲区;

  3. 用户态缓冲区再拷贝回内核的 socket 缓冲区;

  4. 最后由网卡发送出去。

这样经历了两到三次拷贝,CPU负担重、性能差。

而零拷贝的目标是:

  • 避免不必要的拷贝,比如直接从磁盘数据映射到网络缓冲区,减少用户态和内核态之间的来回搬运。

  • 减少CPU消耗,提高吞吐量。