传统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
本文介绍传统read/write在网络文件传输中的四次复制过程,并对比sendfile系统调用如何通过减少内核buf到userbuf及userbuf到socket相关缓冲区的复制次数来提高文件传输效率。

被折叠的 条评论
为什么被折叠?



