Contents
前言
这篇文章将会介绍mmap, 以及mmap在DBMS中的应用. 包括mmap的优缺点分析, mmap与其他一些IO方式的对比.
mmap是什么?
mmap与read, write和直接IO等IO的对比
mmap除了可以减少read,write等系统调用以外,还可以减少内存的拷贝次数,比如在read调用时,一个完整的流程是操作系统读磁盘文件到页缓存,再从页缓存将数据拷贝到read传递的buffer里,而如果使用mmap之后,操作系统只需要将磁盘读到页缓存,然后用户就可以直接通过指针的方式操作mmap映射的内存,减少了从内核态到用户态的数据拷贝。
mmap的优点
相对read, write等减少系统调用
避免一次在内核缓存空间到用户空间的数据拷贝
受操作系统的内核缓冲区管理, 方便
mmap的问题(缺点)
mmap的简单在DBMS中会带来一些问题, 而要解决这些问题, DBMS需要做很多工作, 以致于影响性能, 以及带来复杂性, 还不如直接IO的设计.
除了mmap, 其他的选择
Author 姬小野
LastMod 0001-01-01