首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨应用程序最佳使用NSCache

跨应用程序最佳使用NSCache
EN

Stack Overflow用户
提问于 2012-12-06 00:45:18
回答 2查看 1.4K关注 0票数 6

我在想,最好是使用NSCache的一个全局实例,还是为每个需要它的组件使用多个实例。

例如,我有几个视图子类,它们将内容绘制到图像中并缓存它们,以避免总是重新生成它们。是每个类有一个NSCache实例更好,还是整个应用只有一个集中的NSCache?

请注意,我并不是说每个对象实例都有一个缓存,这样做是迟缓的。我说的是每个类都有一个NSCache实例。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-06 17:32:03

这显然要视情况而定,但我通常会为每种类型的缓存对象选择一个缓存。通过这种方式,你可以为每个PDF设置不同的countLimit值,例如,指定“保留最近渲染的50个缩略图”、“保留最近下载的5个大图像”、“保留最近下载的10个PDF”等。

对于计算非常昂贵的任务,我还采用了两层缓存,NSCache以获得最佳性能,并保存到本地文件系统中的临时/缓存目录,以避免昂贵的下载周期,同时不消耗内存。

票数 3
EN

Stack Overflow用户

发布于 2012-12-06 01:44:39

如果缓存的项目可以跨组件共享,那么您可能会有一个统一的缓存-查找不会显著增加成本,并且您至少有机会减少缓存对象的冗余副本。

但是,如果缓存的项对于每个组件都是唯一的,那么在缓存中混合它们是没有意义的,并且从代码可读性的角度来看可能会令人困惑。在这种情况下,保持缓存的分离。这也让你可以更精确地控制它们-例如,你可以更积极地从没有立即使用的组件中驱逐缓存。

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

https://stackoverflow.com/questions/13728146

复制
相关文章

相似问题

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