2016-01-21 2 views
0

У нас есть приложение, в котором мы загружаем несколько текстов и до трехсот изображений, когда пользователь входит в приложение. Приложение изначально загружается из App Store или Google Play, и загрузка из магазинов работает нормально.Загрузите много файлов в приложение

Мы, однако, испытываем довольно медленное время загрузки изображений. Например. загрузка около 250 изображений с разрешением 768 * 1024 займет около 8 минут. Когда мы загружаем один файл сопоставимого размера (на 250 изображений), эта загрузка может быть достигнута примерно через 1 минуту. Мы немного изучили и обнаружили накладные расходы около 150 мс файла pr, но это почти не объясняет разницу между загрузкой одного и того же тома в одном файле и 250 файлами, поэтому мы не знаем, откуда взялись остальные накладные расходы.

Теперь мы планируем закрепить все изображения на сервере перед загрузкой, а затем распаковать изображения в приложении. Там будут некоторые накладные расходы на упаковку и распаковку zip-файла, но это может быть полезно.

Есть ли у кого-нибудь опыт работы с такой архитектурой упаковки/распаковки для загрузки многих файлов в приложения или, возможно, другие предложения по повышению производительности загрузки?

Спасибо.

Клаус

+0

Как вы загружаете изображения? – njzk2

+0

Через веб-сервис – Claus

+1

, но как вы * загружаете * их? – njzk2

ответ

0

Вы, вероятно, установить раздельные подключения для каждого файла загрузки, который вызывает много TCP накладных расходов, особенно если соединение является безопасным, что это должно быть.

Необходимо перенести одно соединение и использовать его для передачи всех файлов.

+0

Прежде всего: да, мы используем безопасное соединение. Однако мы загружаем все изображения во время входа пользователя в приложение. Я думаю, что связь остается открытой в течение этого времени загрузки, потому что существует непрерывная деятельность. Но кажется, вы считаете, что соединение закрывается между загрузкой каждого изображения. Если это так, то каково ваше предложение по постоянному открытию соединения? – Claus

+0

Я думаю, что наше решение будет состоять из .tar-версий изображений, чтобы мы могли получить все файлы за один раз. Тогда у нас нет накладных расходов из всех этих небольших файлов. Для Android я думаю, что мы будем использовать диспетчер загрузки для управления загрузкой большого файла, а для iOS это будет либо услуга фоновой передачи, либо сохранение приложения в фоновом режиме, используя: UIApplication.sharedApplication(). IdleTimerDisabled = true – Claus

+0

Я уверен, что это сработает. – wvdz

Смежные вопросы