私はGCDを読んで、それを理解しようとしています。私は多くの場所を読みました.UIをフリーズさせる重い仕事をしている場合は、常にGCDを使用する必要があります.GCDはパフォーマンスのためだけに使用することもできます. 10 回実行する必要があるループがあり、各反復はデータ量が多いとします。2 つのスレッドがワークロードを共有するように、これらの反復の半分を別のスレッドで実行すると、パフォーマンスが向上しますか?それとも、ループを通過するのに同じ時間がかかりますか?
2 に答える
2
デバイスに 2 つのプロセッサがある場合は、2 つのシリアル gdc キューを実行するのに役立ちます。ただし、考え方としては、気にする必要はなく、dispatch_queue_create
withDISPATCH_QUEUE_CONCURRENT
を呼び出して、並行して実行する最適なタスク数をデバイスに判断させる必要があります。
于 2012-06-14T07:39:39.513 に答える
2
これは完全にループ ロジックの設計によるものです。このデータに対して行った 2 つの異なる処理をどのように結合してマージするかを定義する必要があるため、質問に対する正しい答えはありません。データはどこにありますか?保存されました。解決しようとしている論理的な問題は何ですか
それにもかかわらず、2 つのスレッドで達成しようとしていることが時期尚早の最適化につながる可能性があるため、コードの最適化を開始する前に、コードに導入しようとしている複雑さに見合う価値があるかどうかを検討してください。
于 2012-06-13T23:21:02.443 に答える