2014-04-04 38 views
1

执行轻量级迁移后,我的一些奇怪的核心数据问题 - 我的iPad应用程序正在使用版本化数据模型,现在我正在迁移到另一个数据模型,只进行一次更改:给实体添加一个属性。迁移过程没有任何问题,并且在完成过程后,我可以运行所有已迁移数据的应用程序 - 唯一的问题是每个保存请求比迁移之前花费的时间多10倍。迁移后缓慢的核心数据性能

  • 我检查迁移过程的核心数据记录 - 没有错误中列出
  • 核心数据的日志(SQL查询)是相同的移民前后,慢
  • 我已经打开SQLite的只是更多外部sqlite查看器中的数据库 - 迁移前的查询时间与迁移后的时间相同。
  • 我已经为迁移后的永久性存储添加了NSSQLiteManualVacuumOption,核心数据的性能稍微好一点,但在迁移之前仍然慢得多。

请问这里有什么可能会出错的吗?如何从迁移之前恢复性能?

+1

您是否尝试过全新安装,直接使用新模型设置持久性存储而不是迁移旧模型,以确认它实际上是迁移?您是否使用'-com.apple.CoreData.SQLDebug 1'运行以准确查看Core Data正在运行的查询?如果是的话,那里有什么奇怪的东西吗? – Tommy

+0

仪器对性能有何评论?速度在哪里?你有一个乐器配置文件可以分享吗? –

+0

@Tommy是的,为当前模型运行新鲜的应用程序工作正常,我也调查了com.apple.CoreData.SQLDebug - 所有内容都与迁移之前相同。 – mprostak

回答

0

猜猜我找到了解决方案。我已经用非常基本的自定义迁移取代了自动轻量级迁移 - 只需Xcode生成的模型映射 - 现在一切都像魅力一样。看起来像自动轻量级迁移机制不能正确处理我的持久性存储的模型和数据,这很奇怪,因为我没有收到任何警告或错误。 感谢您的帮助。