我正在使用file_get_contents从磁盘加载XML文件,测试后发现,使用file_get_contents()可以在3.99秒内1000次加载156K的文件。我已经子类化了负责加载的部分,并用一个memcache层替换了它,在我的开发机器上,我可以在4.54秒内对同一文档进行1000次加载。
我知道file_get_contents()会执行一些缓存操作,但看起来它实际上比一个众所周知的缓存技术更快。在单台服务器上,file_get_contents()的性能是否达到最佳水平?
我的PHP版本是5.2.17,通过Macports安装,运行在OS X 10.6.8系统上。
编辑:我发现在这种大小的XML文档上,使用MEMCACHE_COMPRESSED标志可以获得一些小的好处。1500次memcache加载在压缩的情况下需要6.44秒(没有压缩需要6.74秒)。然而,两者都比file_get_contents慢,后者在5.71秒内完成相同数量的加载。
我知道file_get_contents()会执行一些缓存操作,但看起来它实际上比一个众所周知的缓存技术更快。在单台服务器上,file_get_contents()的性能是否达到最佳水平?
我的PHP版本是5.2.17,通过Macports安装,运行在OS X 10.6.8系统上。
编辑:我发现在这种大小的XML文档上,使用MEMCACHE_COMPRESSED标志可以获得一些小的好处。1500次memcache加载在压缩的情况下需要6.44秒(没有压缩需要6.74秒)。然而,两者都比file_get_contents慢,后者在5.71秒内完成相同数量的加载。
;-)
。 - halfer