sendfile-zero-copy

传统read/write进行网络文件传输过程当中,文件数据实际上经过四次copy操作:

1. 传统IO: 硬盘—>内核buf—>用户buf—>socket相关缓冲区—>协议引擎

2. sendfile系统调用 硬盘—>内核buf—>socket相关缓冲区—>协议引擎

减少以上多次copy,提升文件传输性能:

硬盘 —> 内核buf —> 用户buf —> socket相关缓冲区 —> 协议引擎

1、sendfile系统调用,文件数据被copy至内核缓冲区  
2、再从内核缓冲区copy至内核中socket相关的缓冲区  
3、最后再socket相关的缓冲区copy到协议引擎

3. 减少了 内核bufuser buf ,再从 user bufsocket相关缓冲区 的文件copy

—[2016-12-15]—


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 hi@niewj.com

×

喜欢就点赞,疼爱就打赏