iOS在路上

mmap 一定比普通读写快吗?

2017-06-14  本文已影响232人  不一样的卡梅利多

原理 : 文件磁盘地址映射到内存中 ,是文件地址映射。不是文件内容映射。通过缺页中断将文件内容加载到内存中。缺页中断一次加载 4K 的倍数

磁盘 -->内存  通过缺页中断触发 数据传递

方式1 read

磁盘 -->--cpu缓存---cpu寄存器->内核0{缓存}--内核1--->应用程序内存

方式1 mmap

磁盘 -->--cpu缓存---cpu寄存器--->应用程序内存

方式2 DMA 不经过 CPU

磁盘-->内存0{内核缓存}--内存1--->应用程序内存

方式2 mmap

磁盘--->应用程序内存

mmap 比 普通read ,write 快的原因。少一次从内存复制数据,适用于大文件读写

普通read 比mmap 块的原因,一般先从缓存中获取数据,如果没有才从磁盘加载数据

所以 :

mmap 一般适于用大文件读写

普通read 适用与一般文件读取

这两种方式都有存在的必要

上一篇下一篇

猜你喜欢

热点阅读