私はできるだけ多くの同時httpダウンロードをIPad2(ios6.0)で実行しようとしています。これは、このデバイスで何ができるかをテストするためのものです。GUI のパフォーマンスに興味がない (応答しない場合は重要ではない)
x 分間データをクライアントに送信する特別な HTTP サーバーを作成しました。受信したデータは重要ではありません。速度と同時ダウンロード数を測定するだけです。12 の HTTP リクエストをスケジュールする 2 つの異なる方法を実装しました。
NSオペレーション
1 つは、Queue で NSOperation オブジェクトを使用し、NSOperationQueueDefaultMaxConcurrentOperationCount を 12 に設定することによって行われます。
NSスレッド
2 番目の実装は、同期 http 要求を実行する 12 個の NSThreads を作成することです。
リクエストはすべて同じ宛先 IP に送信されます。
観察
私が観察したのは、どちらの場合も、6 番目から 12 番目のリクエストで TimeOut (エラーコード -1001) が発生したことです。タイムアウト値を 80.0 秒に設定すると、1 回目のダウンロードが完了すると 6 回目のダウンロードが開始されることがわかります。
質問
- IOS には同時ダウンロード数の制限はありますか?
- これらの同時ダウンロードを実行する他の方法はありますか?
- スレッドをコアにバインドする方法はありますか (C++ の cpuaffinity のように割り込みを受けないようにするため)、またはスレッドの優先順位