Iphone 是否将managedObjects批量添加到核心数据?

Iphone 是否将managedObjects批量添加到核心数据?,iphone,objective-c,cocoa-touch,core-data,Iphone,Objective C,Cocoa Touch,Core Data,下面显示了我添加到NSManagedObject子类中的一个方法,用于填充各个实体并将其添加到核心数据中。我有大约1000个对象要添加到数据库中(我是在一个循环中进行的,而不是下面所示的列表)。我的问题是关于性能,将1000个对象中的每一个逐个添加是否会给核心数据增加显著的开销(我假设是这样)。是否有一种方法可以存储每个托管对象,并以单一(更快)的方式添加它们 这应该没问题。如果您真的担心性能,并且您的实现确实存在问题,那么您应该分析并获得实际的工作结果,而不仅仅是征求意见 如果说这应该是相当

下面显示了我添加到NSManagedObject子类中的一个方法,用于填充各个实体并将其添加到核心数据中。我有大约1000个对象要添加到数据库中(我是在一个循环中进行的,而不是下面所示的列表)。我的问题是关于性能,将1000个对象中的每一个逐个添加是否会给核心数据增加显著的开销(我假设是这样)。是否有一种方法可以存储每个托管对象,并以单一(更快)的方式添加它们


这应该没问题。如果您真的担心性能,并且您的实现确实存在问题,那么您应该分析并获得实际的工作结果,而不仅仅是征求意见

如果说这应该是相当便宜的,因为所有托管对象都是在内存中创建的,那么当您调用
save:
时,核心数据就会开始进入磁盘。撞击磁盘的IO是缓慢的,因此如果您确保将其保持在最低限度,您应该会没事


同样,您在这里所做的一件更昂贵的事情是日志记录,即IO输出到日志,如果您在一个紧密的循环中进行大量日志记录,您可以真正注意到这种效果。

这应该很好。如果您真的担心性能,并且您的实现确实存在问题,那么您应该分析并获得实际的工作结果,而不仅仅是征求意见

如果说这应该是相当便宜的,因为所有托管对象都是在内存中创建的,那么当您调用
save:
时,核心数据就会开始进入磁盘。撞击磁盘的IO是缓慢的,因此如果您确保将其保持在最低限度,您应该会没事


同样,您在这里做的一件更昂贵的事情是日志记录,即IO输出到日志,如果您在一个紧密的循环中进行大量日志记录,您可以真正注意到这种效果。

嗨,Paul,我只是好奇,因为我在这个阶段只计划如何做事情,只是做笔记,试着找出最好的方法来安排事情(因此我没有任何东西可以描述)。非常感谢您的建议。有了xcode模板和您的代码,您就可以模拟一些东西来得到一些真实的数字(放心,事情会成功的)。我会考虑制作一个快速原型,只是为了实践…它也值得尝试你多久保存。我发现最后一次大的保存可能会有问题,因此在这种情况下,我使用了一个简单的计数器,并在每创建n个对象后执行一次保存。感谢各位,我知道日志记录,但这肯定是一个很好的例子,我现在正在构建一个原型,但还没有来得及考虑性能,我只是想确保我最初的投球现在在正确的轨道上。也谢谢克里斯的保留意见,我一定会调查的。祝大家周末愉快,再次感谢…嗨,保罗,我只是好奇,因为我在这个阶段只计划如何做事情,只是做笔记,并试图找出最好的方式来安排事情(因此我没有任何东西可以介绍)。非常感谢您的建议。有了xcode模板和您的代码,您就可以模拟一些东西来得到一些真实的数字(放心,事情会成功的)。我会考虑制作一个快速原型,只是为了实践…它也值得尝试你多久保存。我发现最后一次大的保存可能会有问题,因此在这种情况下,我使用了一个简单的计数器,并在每创建n个对象后执行一次保存。感谢各位,我知道日志记录,但这肯定是一个很好的例子,我现在正在构建一个原型,但还没有来得及考虑性能,我只是想确保我最初的投球现在在正确的轨道上。也谢谢克里斯的保留意见,我一定会调查的。祝大家周末愉快,再次感谢。。。
NSManagedObjectContext *context = [[self managedDocument] managedObjectContext];
[Atomal createAtomalInContext:context withName:@"H11" age:@57 andType:@"Nantar"];
[Atomal createAtomalInContext:context withName:@"H23" age:@22 andType:@"Nantar"];
[Atomal createAtomalInContext:context withName:@"H54" age:@11 andType:@"Nantar"];
[Atomal createAtomalInContext:context withName:@"H34" age:@98 andType:@"Nantar"];
[Atomal createAtomalInContext:context withName:@"H17" age:@35 andType:@"Nantar"];
+ (Atomal *)createAtomalInContext:(NSManagedObjectContext *)context withName:(NSString *)name age:(NSNumber *)age andType:(NSString *)type {
    Atomal *atomal = nil;
    atomal = [NSEntityDescription insertNewObjectForEntityForName:@"Atomal" inManagedObjectContext:context];

    // POPULATE PROPERTIES
    [atomal setName:name];
    [atomal setAge:age];
    [atomal setType:type];
    NSLog(@"CORE: Adding >>> %@ %@ %@", [atomal name], [atomal age], [atomal type]);
    return atomal;
}