零拷贝技术演变
2023-08-30 15:11:04 9 举报
零拷贝技术演变
作者其他创作
大纲/内容
传统的数据传输
DMA拷贝
套接字发送缓冲区
伪代码buffer = File.read();Socket.send(buffer);
1.DMA拷贝
用户态
3.CPU拷贝
共享缓冲区
2.CPU拷贝
磁盘
Linux系统调用之mmap内存映射
网络设备缓冲区
应用进程缓冲区
3.DMA拷贝
Socket发送缓冲区
2次CPU拷贝2次DMA拷贝4次上下文切换
4.DMA拷贝
Linux系统调用之splice
内核态
1.DMA拷贝
页缓存(OS内核)
大大减少CPU工作
1次CPU拷贝4次上下文切换
mmap系统调用
演变1
Linux系统调用之sendfile
演变2
仅用于传输文件到套接字
演变3
创建管道
1次CPU拷贝2次上下文切换
0次CPU拷贝2次上下文切换
0 条评论
下一页