缓存对NSFetchedResultsController的影响是什么

an0*_*an0 3 macos core-data nsfetchedresultscontroller ios

我当然读了博士,但我不太明白"设置任何部分和订购内容"的含义.

  1. 这些信息不是来自数据库吗?
  2. 这是否意味着除NSFetchedResultsController数据库指数外还需要其他一些指数?
  3. NSFetchedResultsController设置缓存时真正发生了什么?
  4. 缓存只对静态数据有用吗?如果我的数据经常更新,我应该使用缓存吗?
  5. 如何分析缓存的性能?我试过缓存,但看不到任何性能提升.我定时-performFetch:但看到时间从0.018秒(没有缓存)增加到0.023秒(带缓存).我也定时-objectAtIndexPath:,只有一个时间从0.000030(没有缓存)减少到0.000029(带有catch).

换句话说,我想知道缓存何时(或不)提高性能和原因.

正如@Marcus在下面所指出的那样,"500个条目很小.核心数据可以处理它而没有人类明显的滞后.当你有成千上万的记录时使用缓存." 所以我认为很少有应用程序可以从使用缓存中受益.

Mar*_*rra 7

缓存NSFetchedResultsController是一种捷径.它是最后一个结果的缓存NSFetchRequest.它不是整个数据,而是足以NSFetchedResultsController快速显示结果的数据; 很快.

它是数据库中数据的"副本",NSFetchedResultsController它以下一个实例化中容易使用的格式序列化到磁盘.

换句话说,它是闪存冻结到磁盘的最后结果.

  • 500个条目是*很小*.核心数据可以在没有人类明显滞后的情况下处理.当您拥有*数万*条记录时,将使用缓存.在找到热点之后,你需要寻找优化**,否则就是浪费精力. (5认同)