加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 为什么file_get_contents比memcache_get更快?

发布时间:2020-12-13 13:35:16 所属栏目:PHP教程 来源:网络整理
导读:我正在使用file_get_contents从磁盘加载 XML文件,作为测试,我发现我可以在3.99秒内使用file_get_contents()1000次加载156K文件.我已经将用于加载的部分子类化并用memcache层替换它,并且在我的开发机器上找到我可以在4.54秒内完成1000个相同文档的加载. 我很
我正在使用file_get_contents从磁盘加载 XML文件,作为测试,我发现我可以在3.99秒内使用file_get_contents()1000次加载156K文件.我已经将用于加载的部分子类化并用memcache层替换它,并且在我的开发机器上找到我可以在4.54秒内完成1000个相同文档的加载.

我很欣赏file_get_contents()会做一些缓存,但看起来它实际上比一个众所周知的缓存技术更快.在单个服务器上,file_get_contents()的性能是否可以得到?

我通过Macports,OS X 10.6.8使用PHP 5.2.17.

编辑:我发现这个大小的XML文档,使用MEMCACHE_COMPRESSED标志有一个小小的好处.通过memcache进行的1,500次加载是在6.44秒(带压缩)而不是6.74(没有)完成的.但是两者都比file_get_contents慢,后者在5.71秒内执行相同数量的加载.

因为file_get_contents mmaps文件,因此您只需要几个文件系统调用,这将最终在文件系统缓存中.内存缓存涉及对memcached(以及群集实现上的服务器外)的进程外调用.

file_get_contents()的性能至关重要地取决于文件系统的类型,例如,NFS挂载的文件系统上的文件没有被映射,并且此访问可能慢得多.同样在多用户服务器上,文件系统缓存可以被其他进程快速刷新,而memcached缓存几乎肯定会在内存中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读