gpt4 book ai didi

ios - 循环优化/CoreData优化

转载 作者:行者123 更新时间:2023-11-29 02:54:02 26 4
gpt4 key购买 nike

有什么办法可以优化数组中的循环吗?我在数组 [arr] 中有 10,000 个对象,因此循环将持续 10k 次,我必须在 CfgBarCodeMask 和 CfgBarCodeMaskDetails 之间建立关系。大约需要8分钟。如何减少这个时间?

NSArray *arr=[coreDataEngine  fetchObjectWithEntityName:@"CfgBarCodeMask" withPredicate:nil withSortDescriptor:nil error:nil ];
NSString *predicateString = [NSString stringWithFormat:@"barCodeMaskId == $idVar"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:predicateString];

[arr enumerateObjectsUsingBlock:^(CfgBarCodeMask *barcodeMask, NSUInteger idx, BOOL *stop)
{
NSDictionary *variables = @{ @"idVar" : barcodeMask.id1 };

NSArray *destinationArray=
[coreDataEngine fetchObjectWithEntityName:@"CfgBarCodeMaskDetail"
withPredicate:[predicate predicateWithSubstitutionVariables:variables]
withSortDescriptor:nil error:nil ];

if ([destinationArray count] >0 ) {
[barcodeMask addMaskDetails:[NSSet setWithArray:destinationArray]];
}
}];

最佳答案

您可以将循环分成多个批处理。每个批处理大约 2000 个对象,并使用并发 NSManagedObjectContext 并行执行所有补丁。这就是我从另一个数据库迁移 600K 对象时所做的事情。

关于ios - 循环优化/CoreData优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24134089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com