【发布时间】:2013-08-14 13:44:21
【问题描述】:
我正在试验 AFIncrementalStore,这很棒,但我注意到我遇到了一些性能问题。
具体来说,我正在使用它从 facebook graph api 中删除一堆 facebook 朋友信息,并且我看到一些非常慢的时钟时间用于保存操作。对于上下文,我正在加载大约 900 条记录。 Instruments 告诉我问题是这样的:
NSManagedObjectID *backingObjectID = [self objectIDForBackingObjectForEntity:entity withResourceIdentifier:resourceIdentifier];
它又调用它
[backingContext performBlockAndWait:^{
backingObjectID = [[backingContext executeFetchRequest:fetchRequest error:&error] lastObject];
}];
有没有人有过使用 AFIncremental 存储更大数据集的经验?
我不太明白的其他一些事情是为什么所有这些操作都发生在主线程上,而所有这些操作都使用来自 PrivateQueueConcurrencyType 的上下文中的performBlockAndWait 操作启动。非常感谢任何帮助!
【问题讨论】:
-
我承认收集有关核心数据的特定主题的文档很痛苦,因为官方文档中没有任何内容。那是苹果的错。但是,您可以在 SO 上找到问题的答案,例如:NSManagedObjectContext performBlockAndWait: doesn't execute on background thread?。只是对链接中答案的一个澄清:该块实际上将在私有队列上执行,但调用线程将被阻塞直到完成。
标签: ios core-data afincrementalstore