我有两个实体:Project
和Production
每个Project
都有许多Productions
。所以项目的关系是toMany
我得到所有Projects
和所有Productions
两个网络请求。我将每个项目都保存到CoreData
中。大约有10万个项目,大约要花40秒钟,没关系。
获得大约100k Productions并保存到CoreData需要我50秒钟。也可以。但是我还没有建立关系。
因此,我在所有用NSFetchRequest
提取的项目上设置一个循环,以设置准备生产中的关系。
for project in Project.getAll() {
project.addToProductions(Produciton.getProductionById(project.producionId))
}
此循环需要大量时间和CPU。 CPU Over Budget x2
进行概要分析大约需要10分钟。
如果有一种方法可以建立关系而又不影响作品,或者我已经将CoreData
切换为SQLite
或Realm
?
答案 0 :(得分:1)
我的建议是同时创建两个实体对象,并为Project
对象使用缓存。
Project
和Production
数据。NSCache
。Production
对象。Project
对象。project
属性设置为Project
对象。Project
对象,并将其放入缓存中。答案 1 :(得分:0)
您可以编写一个完成代码块,并调用第二个函数以结束操作。