传统read/write进行网络文件传输过程当中,文件数据实际上经过四次copy操作:
硬盘 —> 内核buf —> 用户buf —> socket相关缓冲区 —> 协议引擎
而sendfile系统调用减少以上多次copy,提升文件传输性能:
硬盘 —> 内核buf —> 用户buf —> socket相关缓冲区 —> 协议引擎
1、sendfile系统调用,文件数据被copy至内核缓冲区
2、再从内核缓冲区copy至内核中socket相关的缓冲区
3、最后再socket相关的缓冲区copy到协议引擎
减少了 内核buf
到 user buf
,再从 user buf
到 socket相关缓冲区
的文件copy
---[2016-12-15]---
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。