我正在使用NSSqliteStoreType的核心数据在我的iOS应用中存储数据。 我需要将大量对象存储到数据库中。 为了提高Core数据的性能,我考虑了很多因素:
但是节省10万件物品需要花费很多时间。请建议我在保存大量数据的同时提高Core数据性能的最佳实践。
答案 0 :(得分:2)
[managedObjectContext save]
一次,具体取决于对象大小和图形复杂性。有关详细信息,请参阅this answer @autoreleasepool
块中,并在保存之后重置上下文,然后退出自动释放块。请参阅this answer 答案 1 :(得分:0)
您应考虑使用预先填充的数据运送您的应用,以避免导入的大部分开销。假设数据足够静态(大多数数据),您可以预先加载所有数据,直到发布应用程序,然后当应用程序启动时,它只需要从发货日期(或上次刷新日期)中获取数据向前)。
正如Leonid Usov所说,您还应该在后台上下文中导入并批量保存到磁盘。这将有助于保持内存下降和UI性能提升。但是在数据结束时,导入大量数据非常密集,应尽可能通过预加载来避免。