Я пытаюсь выполнить как можно больше одновременных http-загрузок IPad2 (ios6.0). Это чисто для тестирования того, что возможно на этом устройстве. Даже не заинтересован в производительности графического интерфейса (не важно, если он не отвечает)
Я создал специальный HTTP-сервер, который отправляет клиенту данные за x минут. Полученные данные не имеют значения. Я просто измеряю скорость, сколько одновременных загрузок. Я реализовал два разных способа планирования 12 HTTP-запросов.
NSOperation
Один выполняется с помощью объектов NSOperation в очереди и устанавливает NSOperationQueueDefaultMaxConcurrentOperationCount на 12
NSThread
Вторая реализация - это создание 12 NSThreads, которые выполняют синхронизирующий HTTP-запрос.
Все запросы отправляются на тот же IP-адрес назначения.
Наблюдение
Я наблюдаю, что в обоих случаях с 6-го по 12-й запрос получают TimeOut (код ошибки -1001). Если 1 поставить значение тайм-аута в 80,0 секунд, я вижу, что 6-я загрузка начинается с 1-го завершения.
Вопросы
- Есть ли в IOS ограничение на количество одновременных загрузок?
- Есть ли другой способ выполнить эти параллельные загрузки?
- Есть ли способ привязать поток к ядру (чтобы он не получал прерывания, например cpuaffinity в С++) или приоритет потока