2016-04-01 6 views
1

iPadの場合、最大限のパフォーマンスを得るためにいくつの並列操作を開始できますか?それぞれの実行でクエリ操作、計算など...iOS GCD最大同時操作数

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 */ 
    }; 


    } 
+0

GCDで実行できる同時操作(最大レベルの並行キューごとに64個)のハード制限があります。そのため、そのままにしておきたいと思います。 [私の答えを見る](http://stackoverflow.com/a/34854593/2976878)、[こちらの回答はこちら](http://stackoverflow.com/a/15150800/2976878)を参照してください。あなたが最初にやる必要のある並行操作の数については、これは本当にUXの質問です。[daredevilのコメント](http://stackoverflow.com/a/36356884/2976878)。 – Hamish

答えて

1

これは基本的にUXに関する質問です。エンドユーザーのニーズに依存します。
彼は本当に計算をすばやく開始して完了する必要がありますか?
一部または大部分を遅延させることはできますか?
各計算(進捗バー)の進捗状況をユーザーに通知し、完了時に通知することをお勧めします。
開始/停止/一時停止を選択させてください(これは非常に重要な機能です)。

すべてのタスクがCPU集中型であり、リソースのネットワークフェッチに関係しない場合は、各CPUデバイスに依存します。並列実行できるスレッドの数。

+0

これに関するアップデートはありますか? – StefanS

関連する問題