[我正在使用file_get_contents从磁盘加载XML文件,作为测试,我发现可以在3.99秒内使用file_get_contents()
1,000次加载156K文件。我将负责加载的部分细分为子类,并用memcache层替换了它,在我的开发机上发现我可以在4.54秒内完成1000次相同文档的加载。
我感谢file_get_contents()会进行一些缓存,但是看起来它实际上比众所周知的缓存技术要快。在单个服务器上,file_get_contents()
的性能是否可以达到?
我通过Macports,OS X 10.6.8使用PHP 5.2.17。
编辑:我在这种大小的XML文档中发现,使用MEMCACHE_COMPRESSED
标志有一个小的好处。通过内存缓存进行的1,500次加载在6.44秒(使用压缩)中完成,而不是6.74秒(不使用)。但是两者都比file_get_contents
慢,后者在5.71秒内完成相同数量的加载。
我正在使用file_get_contents从磁盘加载XML文件,作为测试,我发现可以在3.99秒内使用file_get_contents()加载1,000次文件156K。我将执行...
因为file_get_contents mmap
是文件,所以您只有几个文件系统调用,这将最终存储在文件系统缓存中。 memcache涉及对memcached的进程外调用(以及在集群实现中的服务器外)。
file_get_contents是检索文件的最简单方法。基础操作系统(尤其是linux)已经具有有效的缓存机制。您所做的任何其他操作只会增加开销,并使速度降低。
在memcache中存储XML文件对我来说意义不大。