决定使用哪种缓存策略?

Posted

技术标签:

【中文标题】决定使用哪种缓存策略?【英文标题】:Decide which caching startegy to use? 【发布时间】:2010-06-10 06:34:52 【问题描述】:

我想缓存我加载的数据,以便减少我的应用程序启动时间。

我知道几种存储应用程序数据的策略

即核心数据、nsuserdefaults、归档。

现在我的情况是假设我有最多 10 个对象的数组,每个对象有 5 个字段。

所以我无法决定在以后检索相同的数组时存储该数组的策略。

谢谢。

【问题讨论】:

【参考方案1】:

永远不要在NSUserDefaults中存储缓存数据;这不是它的用途。

归档成本高昂,不应使用。它也更难管理。

Core Data 几乎总是正确的答案,除非数据存储是微不足道的。

更新

Archiving,也称为序列化,是与其他格式相比,将数据写入磁盘的最昂贵的方式之一。确切的细节很难在这里的答案中解释,但它归结为一个旧的设计,它的性能几乎没有更现代的持久性系统,如 Core Data。在使用 Core Data 时,将两者放在一起,您会看到性能显着提高(由于内部线程、缓存、后端数据库支持等)。

Core Data 还处理您的数据模型生命周期和结构这一事实只是对性能提升的补充。

【讨论】:

感谢您的解释。

以上是关于决定使用哪种缓存策略?的主要内容,如果未能解决你的问题,请参考以下文章

UML-设计模式-缓存策略

联合阅读浏览器缓存策略

LRU缓存替换策略及C#实现

ElasticsearchElasticsearch 缓存策略 QueryCacheingPolicy

缓存失效策略(FIFO,LRU,LFU)

链表(上)