美文网首页iOS在路上
mmap 一定比普通读写快吗?

mmap 一定比普通读写快吗?

作者: 不一样的卡梅利多 | 来源:发表于2017-06-14 14:17 被阅读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 适用与一般文件读取

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

    相关文章

      网友评论

        本文标题:mmap 一定比普通读写快吗?

        本文链接:https://www.haomeiwen.com/subject/bplwlttx.html