【问题标题】:Core Data NSFetchedResultsController Performance Advantages Over NSArray?核心数据 NSFetchedResultsController 性能优于 NSArray?
【发布时间】:2011-04-25 06:35:49
【问题描述】:

与 NSArray 相比,使用 NSFetchedResultsController 在 iPhone 上是否提供任何性能优势?

我有 4,0008,000 条记录存储在核心数据中,我想知道是否应该选择其中一个。 NSFetchedResultsController 只是用来使代码“更漂亮”吗?

我担心的是搜索和按下键盘按钮时的延迟(以及将这么多记录加载到内存中的问题)。谢谢!

【问题讨论】:

    标签: iphone cocoa-touch core-data


    【解决方案1】:

    根据您的参数,Core Data 将比数组更快,尤其是在您对数据进行任何更改时。

    在这种情况下,数组的缺点是您必须一次性将整个数组加载到内存中。

    Core Data 似乎比更原始的方法要慢一些,但由于经过微调的优化以及与 API 其余部分的轻松集成,实际上很难在大量实际应用中击败 Core Data数据的。

    【讨论】:

    • 抱歉,澄清一下:我也在数组中使用核心数据托管对象。那么 NSFetchedResultsController 不会自动将数据加载到内存中吗?谢谢。
    • NSFetchedResults 控制器将根据表视图的要求将对象加载到内存中,您可以在提供给控制器的 NSFetchRequest 上使用 setFetchBatchSize: 调整它一次从磁盘带入多少个对象。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多