【发布时间】:2016-04-01 12:42:59
【问题描述】:
在 iPad 上,可以启动多少并行操作才能获得最佳性能?在每次运行查询操作、计算等...
这取决于 iPad 型号 (CPU)?
int count = [objects count];
if (count > 0)
{
dispatch_group_t group = dispatch_group_create();
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
for (int i = 0; i < count; i++)
{
dispatch_group_async(group, queue, ^{
for (int j = i + 1; j < count; j++)
{
dispatch_group_async(group, queue, ^{
/** LOTS AND LOTS OF WORK FOR EACH OBJECT **/
});
}
});
}
dispatch_group_notify(group, queue, ^{
/** END OF ALL OPERATIONS */
};
}
【问题讨论】:
-
您可以在 GCD 中执行 64 个并发操作(每个顶级并发队列)的硬性限制 - 所以您希望保持在该值以下。 See my answer here 和 this answer here 了解更多信息。至于您首先需要执行多少并发操作 - 这确实是一个 UX 问题,as daredevil says。
标签: ios objective-c concurrency cpu grand-central-dispatch