首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend_Cache_Backend_Sqlite对Zend_Cache_Backend_File

Zend_Cache_Backend_Sqlite对Zend_Cache_Backend_File
EN

Stack Overflow用户
提问于 2010-06-08 08:15:44
回答 2查看 1.2K关注 0票数 5

目前,我正在使用Zend_Cache_Backend_File缓存我的项目(特别是来自外部web服务的响应)。我在徘徊,如果我能找到一些好处,将结构迁移到Zend_Cache_Backend_Sqlite。

可能的好处是:

folder)

  • Removing文件系统是有序的(在缓存

  • 过期条目中只有一个文件应该更快)(我的假设是,zend不需要扫描内部元数据以确定每个缓存的过期日期)

可能存在的不利因素:

  • 查找要读取的记录(用文件zend检查是否存在基于文件名的文件,并且应该更快一点)。

我试着在网上搜索了一下,但似乎没有太多关于这个问题的讨论。

你觉得那个怎么样?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-08 11:06:09

我想说这取决于你的申请。

转换不应该很难。测试这两种情况,看看哪一种最适合你。没有一个基准是客观的,除了你自己的。

仅仅衡量性能,Zend_Cache_Backend_Static是最快的。

票数 3
EN

Stack Overflow用户

发布于 2010-10-27 21:06:07

Zend_Cache_Backend_File的另一个缺点是,如果您有大量的缓存文件,您的操作系统需要很长时间才能加载单个缓存文件,因为每次都必须打开和扫描整个缓存目录。因此,假设您有10,000个缓存文件,请尝试在缓存dir上执行一个ls shell命令,查看读取所有文件并打印列表所需的时间。每次需要访问缓存时,同样的延迟都会转换到应用程序中。

您可以使用hashed_directory_level选项稍微减轻这个问题,但它只嵌套两个目录的深度,如果您有大量的缓存文件,这可能不够。我在一个项目中遇到了这个问题,随着缓存越来越大,性能会随着时间的推移而下降。我们无法切换到Zend_Cache_Backend_Memcached,因为我们需要标记功能(Memcached不支持)。切换到Zend_Cache_Backend_Sqlite是解决这个性能退化问题的一个很好的选择。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2995679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档