总结下sendfile的具体过程如下:
- 通过 DMA 将磁盘上的数据拷贝到内核缓冲区里;
- 缓冲区描述符和数据长度传到 socket 缓冲区 , 这样网卡的 SG-DMA 控制器就可以直接将内核缓存中的数据拷贝到网卡的缓冲区里 , 此过程不需要将数据从操作系统内核缓冲区拷贝到 socket 缓冲区中 , 这样就减少了一次数据拷贝;
此种方式对比之前的 , 真正意义上去除了CPU拷贝 , CPU 可以去执行其他的业务计算任务 , 同时和 DMA 的 I/O 任务并行 , 极大地提升系统性能 。
但他的劣势也很明显 , 强依赖于硬件的支持
推荐阅读
- win10系统注册表被管理员禁用如何解决
- win10系统如何删除百度云管家盘符
- 不同车系润滑油如何选?收好这篇指南!
- 如何理解“智者乐水,仁者乐山” 智者乐水仁者乐山
- 什么是地震预警?手机如何实现地震预警功能?专家解读
- 抖音第二波流量间隔及如何增加抖音流量
- 盐焗鸡如何制作 盐焗鸡的制作发布方法简单好学一点
- 河里涨水晚上怎么钓鱼 河里涨水如何钓鱼
- 孩子人际关系不好如何引导 孩子人际关系不好如何引导她
- 如何让一个自卑的孩子变得自信