【问题标题】:Core Data Migration really Slow, Why does it happen at all?核心数据迁移真的很慢,为什么会这样?
【发布时间】:2009-06-24 15:14:24
【问题描述】:

我正在开发一个桌面 Mac OS X 应用程序,它使用 Core Data 将其非常简单的数据保存到 SQLite 中,以及一个用于 iPhone 的配套移动应用程序,它只需要从桌面应用程序读取数据。虽然当我在移动应用程序上加载 SQLite 数据库时它们共享相同的托管对象模型,但数据需要几秒钟来迁移数据。我真的很想避免这种漫长的等待,因为它似乎与 SQLite 文件的大小呈线性相关。

为什么来自同一个托管对象模型的数据甚至需要迁移?

有人知道避免迁移的方法吗?

【问题讨论】:

  • 你怎么知道它正在迁移?你有对话吗?除非您明确启用它,否则不会发生迁移(请参阅核心数据版本控制和迁移指南)。如果您的模型没有更改,则不需要迁移,因此可能正在发生其他事情。
  • 好问题。我启用它是因为它不会加载商店。我相当肯定它正在迁移,因为我使用 Shark 分析了较长的加载时间。

标签: iphone cocoa performance macos core-data


【解决方案1】:

我发现了导致此问题的原因。虽然这可能很明显,但我会联系起来,所以希望没有其他人会犯这个错误......

我的项目中有两个不同的托管对象模型。拥有多个数据似乎会迫使 Core Data 尝试迁移以找出哪些数据与哪个 MOM 匹配。

作为一种解决方案,我能够手动合并模型,以便可以使用相同的 MOM 表示两个数据源。

【讨论】:

    猜你喜欢
    • 2016-10-13
    • 2011-08-25
    • 2011-09-14
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    相关资源
    最近更新 更多