[源码和文档分享]内存映射文件

背景

内存映射文件提供了一组独立的函数,使应用程序能够通过内存指针像访问内存一样访问磁盘上的文件。通过内存映射文件函数可以将磁盘上的文件全部或者部分映射到进程的虚拟地址空间的某个位置。一旦完成映射,对磁盘文件的访问就可以像访问内存文件一样简单。这样,向文件中写入数据的操作就是直接对内存进行赋值,而从文件的某个特定位置读取数据也就是直接从内存中取数据

当内存映射文件提供了对文件某个特定位置的直接读写时,真正对磁盘文件的读写操作是由系统底层处理的。而且在写操作时,数据也并非在每次操作时即时写入到磁盘,而是通过缓冲处理来提高系统整体性能。

内存映射文件的一个好处之一是,程序代码以标准的内存地址形式来访问文件数据,按照页面大小周期从磁盘写入数据的操作发生在后台,由操作系统底层来实现,这个过程对应用程序是完全透明的。虽然,内存映射文件最终还是要将文件从磁盘读入内存,实质上并没有省略什么操作,整体性能可能并没有获得什么提高,但是程序的结构会从中受益,缓冲区边界等问题将不复存在。而且对文件内容更新后的写操作也有操作系统自动完成,有操作系统判断内存中的页面是否为脏页面并仅将脏页面写入磁盘,比程序自己将全部数据写入文件的效率要高很多。

6607861-50bc57780acf31e1.png

参考文档和完整的文档和源码下载地址:

https://www.write-bug.com/article/1596.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值