我读过一些有关使用NSCache建议的文章,其中许多提到的建议是在NSCache中使用NSPurgeabledata。但是,我只是不明白这一点,虽然当内存紧张或达到计数/成本限制时,NSCache已经能够撤出其内容,为什么我们仍然需要在这里使用NSPurgeabledata?这难道不是比使用我们已有的数据对象慢的速度吗?我们在这里可以享有什么样的优势?
计数限制和总成本限制没有严格执行。也就是说,当缓存超过其限制之一时,其某些对象可能会立即、稍后或永远不会被逐出,这一切都取决于缓存的实现细节。所以在这里使用 NSPurgeabledata 的优点是:-
通过使用可清除内存,您可以让系统在需要时快速恢复内存,从而提高性能。标记为可清除的内存在被虚拟内存系统回收时不会分页到磁盘,因为分页是一个耗时的过程。相反,数据被丢弃,如果以后需要,则必须重新计算。它像锁定机制一样工作,或者我们可以说它像同步一样工作。如果数据正在由一个线程访问,则其他线程无法访问相同的数据,除非第一个线程完成。
| 归档时间: |
|
| 查看次数: |
945 次 |
| 最近记录: |