Стоимость создания нового NSConnection на iPhone
Кто-нибудь знает, как дорого TCP-соединение на iPhone? Например, если мне нужно загрузить 8-10 небольших файлов (2-6 кБ) с веб-сервера, имеет ли смысл создавать 8-10 запросов NSConnection или было бы лучше сделать один запрос на загрузку 8-10 файлов одновременно (предположим, что сервер поддерживает такие запросы)?
3 ответа
Не уверен, насколько дорогая операция...
Лично я бы порекомендовал использовать ASIHTTP. Это класс-оболочка, предназначенный для чудесной обработки подобных ситуаций. У него даже есть очередь, которая может ставить в очередь все ваши вызовы API, затем запускать их асинхронно в отдельных потоках и даже отслеживать ход выполнения каждого из них.
Если вы говорите об HTTP и сервер поддерживает HTTP keep-alive, я бы предпочел использовать один объект подключения.
В любом случае вы можете протестировать оба решения и сообщить нам результаты:)
Я выполнил следующий тест. Я запустил простой веб-сервер, который может обрабатывать только два типа запросов:
- вернуть изображение по номеру (всего 8 изображений)
- вернуть все изображения, упакованные в один файл
Затем я написал простое приложение для iPhone, которое запрашивало 8 изображений - одно изображение на запрос и 8 изображений на запрос как один файл.
Результаты были для меня довольно неожиданными, потому что среднее время для одного изображения, когда я запрашивал все изображения одним файлом, было в 5-7 раз быстрее, чем при отдельном запросе.