PHP函数file_get_contents与操作系统的内存映射

原创
06/22 17:21
阅读数 63

内存映射,英文是 memory mapping,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用 read、write 等系统调用函数。相反,内核空间对这段区域的修改也直接反映用户空间,从而可以实现不同进程间的文件共享。

因为有了这个功能,我们在读写本地文件时的速度都大大的提升。

php manual中的一段文字如下:

file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。 

windows10下查看内存映射的软件:https://docs.microsoft.com/zh-cn/sysinternals/downloads/rammap

下载后执行 RAMMap64.exe就可以看到本地系统的内存映射数据。File Details标签下会显示所有映射的文件。如果需要清空,可以使用菜单"Empty"下的命令。

展开阅读全文
php
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部