当前位置: 首页> 财经> 金融 > 肥城房产网_东莞常平健明眼科医院_万网是什么网站_关注公众号一单一结兼职

肥城房产网_东莞常平健明眼科医院_万网是什么网站_关注公众号一单一结兼职

时间:2025/7/11 18:00:03来源:https://blog.csdn.net/dhrmt/article/details/144205153 浏览次数:0次
肥城房产网_东莞常平健明眼科医院_万网是什么网站_关注公众号一单一结兼职

NIO和零拷贝

零拷贝是指没有cpu拷贝

ps:DMA:直接内存拷贝,不经过cpu

传统IO模型
image-20241203090719775

四次拷贝,三次状态的切换

mmap优化

通过内存的映射,将文件映射到内核缓冲区,且用户空间可以共享内核空间的数据,于是在进行网络传输的时候可以减少内核空间到用户空间的拷贝次数

image-20241203091800208

三次拷贝,三次状态的切换

sendFile优化

数据不经过用户态,从内核缓冲区进入socketbuffer,减少一次上下文切换

Linux2.1版本

image-20241203092047324

三次拷贝,两次状态的切换

Linux2.4版本

虽然有一次cpu拷贝,但是拷贝的信息很少,都是一些length、offset等信息,可以忽略不记

image-20241203094406105

两次拷贝,两次状态的切换

mmap和零拷贝的区别
  1. mmap适合小数据量,sendFile适合大文件的传输

  2. mmap需要四次状态的切换,3次数据拷贝;sendFile需要三次状态切换,2次数据拷贝

  3. sendFile可以利用DMA减少CPU拷贝,mmap必须要从内核态拷贝到socketbuffer

关键字:肥城房产网_东莞常平健明眼科医院_万网是什么网站_关注公众号一单一结兼职

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: