目前我正在使用Zend_Cache_Backend_File来缓存我的项目(特别是来自外部Web服务的响应)。如果我能在将结构迁移到Zend_Cache_Backend_Sqlite时找到一些好处,那我就会徘徊。
可能的优点是:
可能的缺点:
我试图在互联网上搜索一下,但似乎没有很多关于此事的讨论。
你怎么看?
提前致谢。
答案 0 :(得分:3)
我会说,这取决于你的申请。
切换不应该很难。只测试两种情况,看看哪种情况最适合你。除了你自己以外,没有基准是客观的。
仅测量性能,Zend_Cache_Backend_Static是最快的。
答案 1 :(得分:3)
Zend_Cache_Backend_File的另一个缺点是,如果你有很多缓存文件,它可能需要你的操作系统很长时间才能加载一个缓存文件,因为它每次都必须打开并扫描整个缓存目录。因此,假设您有10,000个缓存文件,请尝试在缓存目录上执行ls
shell命令,以查看读取所有文件并打印列表所需的时间。每次需要访问缓存时,相同的延迟都会转换为您的应用程序。
您可以使用 hashed_directory_level 选项稍微缓解此问题,但它最多只能嵌入两个目录,如果您有大量缓存文件,这可能还不够。我在一个项目上遇到了这个问题,随着缓存变得越来越大,性能实际上会随着时间的推移而降低。我们无法切换到Zend_Cache_Backend_Memcached,因为我们需要标记功能(Memcached不支持)。切换到Zend_Cache_Backend_Sqlite是解决此性能下降问题的一个很好的选择。