在NSCache中使用NSPurgeabledata有什么意义?

时间:2013-08-27 05:10:40

标签: objective-c cocoa

我已经阅读了一些关于使用NSCache建议的文章,因为很多人提到的建议是在NSCache中使用NSPurgeabledata。 但是我无法理解这一点,而当内存紧张或达到计数/成本限制时,NSCache已经能够逐出其内容,为什么我们仍然需要在这里使用NSPurgeabledata?这不是比使用我们已有的数据对象更慢吗?我们可以在这里获得什么样的优势?

1 个答案:

答案 0 :(得分:3)

未严格执行计数限额和总费用限额。也就是说,当缓存超过其中一个限制时,其某些对象可能会立即,稍后或永远被驱逐,这取决于缓存的实现细节。 所以在这里使用NSPurgeabledata的优点是: -

通过使用可清除内存,您可以让系统在需要时快速恢复内存,从而提高性能。当虚拟内存系统回收时,标记为可清除的内存不会被分页到磁盘,因为分页是一个非常耗时的过程。相反,数据被丢弃,如果稍后需要,则必须重新计算。 它像锁定机制一样工作,或者我们可以说它像同步一样工作。如果数据是由一个线程访问的,那么没有其他线程可以访问同一个线程,除非第一个线程完成。