gpt4 book ai didi

ios - 缓存对 NSFetchedResultsController 有什么影响

转载 作者:可可西里 更新时间:2023-11-01 17:11:00 26 4
gpt4 key购买 nike

我当然阅读了文档,但我不太明白“设置任何部分并排序内容”的含义。

  1. 这些信息不是来自数据库吗?
  2. 这是否意味着 NSFetchedResultsController 除了数据库索引之外还需要其他类型的索引?
  3. NSFetchedResultsController 设置缓存时到底发生了什么?
  4. 缓存是否只对静态数据有用?如果我的数据经常更新,我是否应该使用缓存?
  5. 如何分析缓存的性能?我试过缓存,但看不到任何性能提升。我对 -performFetch: 进行了计时,但看到时间从 0.018s(无缓存)增加到 0.023s(有缓存)。我还对 -objectAtIndexPath: 进行了计时,并且只从 0.000030(无缓存)减少到 0.000029(有捕获)。

换句话说,我想知道缓存何时会(或不会)提高性能以及原因。

正如 @Marcus 在下面指出的那样,“500 个条目很小。Core Data 可以处理它,而不会出现明显的人为延迟。当您有数万条记录时,就会使用缓存。”所以我认为很少有应用会从使用缓存中受益。

最佳答案

NSFetchedResultsController 的缓存是一种捷径。它是来自 NSFetchRequest 的最后结果的缓存。它不是全部数据,但足以让 NSFetchedResultsController 快速显示其结果的数据;很快。

它是数据库中数据的“副本”,以NSFetchedResultsController 在下一次实例化时很容易使用的格式序列化到磁盘。

换个角度看,它是闪存卡住到磁盘的最后结果。

关于ios - 缓存对 NSFetchedResultsController 有什么影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7757752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com