OGeek|极客世界-中国程序员成长平台

标题: ios - 保存时的核心数据性能问题 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 15:55
标题: ios - 保存时的核心数据性能问题

我正在使用 NSSqliteStoreType 的核心数据将数据存储在我的 iOS 应用程序中。 我需要将大量对象存储到数据库中。 为了提高核心数据的性能,我考虑了很多因素,例如:

  1. 批量保存
  2. 仅在 for 循环结束后保存
  3. 清除上下文以管理内存

但是保存 100k 个对象需要花费大量时间。请建议我在保存大量数据的同时提高核心数据性能的最佳做法。



Best Answer-推荐答案


  1. 您应该在非 UI 线程上使用直接绑定(bind)到持久存储协调器的上下文而不是主上下文的子上下文进行导入
  2. 您应该在每插入数百个新对象时调用一次[managedObjectContext save],具体取决于对象大小和图形复杂性。见 this answer了解详情
  3. 您应该将步骤 2 中的批处理包装在 @autoreleasepool block 中,并在保存后在退出自动释放 block 之前重置上下文。见 this answer

关于ios - 保存时的核心数据性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31722204/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4