Скачать производительность AVAssetDownloadTask - PullRequest
0 голосов
/ 21 мая 2018

Я использую AVAssetDownloadTask, чтобы загрузить звук, зашифрованный FairPlay.Согласно рекомендациям, аудио делится на маленькие порции, чтобы обеспечить возможность переключения между битрейтами во время потоковой передачи.Наши куски занимают около 6 секунд каждый, что означает размер менее 100 КБ.

Скорость загрузки этого процесса довольно плохая.Я видел скорость от 85 КБ / с до 250 КБ / с.Это связано с тем, что, когда я загружаю новую бета-версию Xcode, я получаю несколько мегабайт в секунду.

Я предполагаю, что медленная скорость связана с необходимостью сделать отдельный запрос для каждого сегмента, чтомного накладных расходов.Я попытался проверить трафик загрузки, используя Charles , и хотя он показывает одно HTTPS-соединение для каждой задачи загрузки, размер тела запроса постоянно увеличивается в течение всей загрузки.Я попытался загрузить тестовый файл объемом 100 МБ с того же сервера, на котором находятся аудиофайлы, и он работал со скоростью несколько мегабайт в секунду.

Мой вопрос: каковы наилучшие методы получения хорошей производительности при использовании AVAssetDownloadTask?Должны ли сегменты быть больше?Должен ли быть отдельный файл, который представляет собой один большой блок для загрузки?Или это странное поведение, предполагающее, что я что-то настроил неправильно?

...