我正在使用 NSSqliteStoreType 的核心数据将数据存储在我的 iOS 应用程序中。
我需要将大量对象存储到数据库中。
为了提高核心数据的性能,我考虑了很多因素,例如:
- 批量保存
- 仅在 for 循环结束后保存
- 清除上下文以管理内存
但是保存 100k 个对象需要花费大量时间。请建议我在保存大量数据的同时提高核心数据性能的最佳做法。
Best Answer-推荐答案 strong>
- 您应该在非 UI 线程上使用直接绑定(bind)到持久存储协调器的上下文而不是主上下文的子上下文进行导入
- 您应该在每插入数百个新对象时调用一次
[managedObjectContext save] ,具体取决于对象大小和图形复杂性。见 this answer了解详情
- 您应该将步骤 2 中的批处理包装在
@autoreleasepool block 中,并在保存后在退出自动释放 block 之前重置上下文。见 this answer
关于ios - 保存时的核心数据性能问题,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/31722204/
|