1

iPhone 4でテストすると、実行速度が遅いコードがいくつかあります。GrandCentral Despatchを調査し、いくつかのタスクにバックグラウンドスレッドを使用することを考えています。ただし、iPhone4はシングルコアデバイスであることを理解しています。これは、このデバイスでバックグラウンドスレッドを使用してもメリットがないことを意味しますか?

この点に関して、さまざまなデバイス機能に関するAppleのドキュメントには多くの情報が見つかりませんでした。また、バックグラウンド処理は初めてです。

4

2 に答える 2

7

はい、iOS4以降を実行している限り可能です。GCDは、シングルコアマシンから最大16コアのMacProまで同じように使用できるという点で優れた設計です。実際、AppleはGCDを導入したときにこれを強調しました。コードが適切に記述されていれば、シングルコアのiPhoneでもマルチコアのiOSデバイスでも同様に機能するはずです。理論的には、シングルコアデバイスよりもマルチコアデバイスのパフォーマンスが向上するはずです。

于 2012-10-22T13:55:42.747 に答える
0

それはすべて、コードが実際に何をしているかによって異なります。コードが停止せずに1つだけを計算することを目的としている場合、パフォーマンスの観点から1つのコアCPUでマルチスレッドを使用する利点はありません。ただし、タスクの一部がネットワークデータの待機、ディスク操作の待機、スリープなどの場合は、他のスレッドがその時間を使用して、1つのコアCPUでも有用な処理を実行している可能性があります。一般に、UIを操作している場合は、時間のかかるタスクをバックグラウンドで実行することをお勧めします。これにより、ユーザーインターフェイスがブロックされないため、エンドユーザーのエクスペリエンスが向上します。

于 2012-10-22T14:11:37.243 に答える