Залповые параллельные запросы сети - PullRequest
0 голосов
/ 17 июня 2019

Я использую залп для загрузки данных байтового массива из облака, к которому у меня есть доступ.

Моя реализация иногда выполняет около 200 запросов в одном цикле for для получения массива 200 (средний размерразмер файла составляет 700 КБ, а некоторые файлы занимают до 1 МБ) и сохраняют их на устройстве.

Моя проблема заключается в том, что загрузка ЦП сводится с ума, хотя я знаю, что залп имеет очередь запросов и толькообрабатывает 4 запроса в то же время, что и значение по умолчанию DEFAULT_NETWORK_THREAD_POOL_SIZE = 4.

Кто-нибудь имеет представление, почему происходят эти издержки, из-за кеша залпа или метода записи файлов на устройство?

Это код, который я использую для сохранения файла на устройстве

private void writeAudioFile(byte[] arrayByte, String name) throws 
                  IOException {
     FileOutputStream outputStream = new FileOutputStream(name);
     outputStream.write(arrayByte);
     outputStream.close();
}

1 Ответ

0 голосов
/ 17 июня 2019

Постоянное хранение записываемых файлов в течение некоторого времени делает работу процессора очень сложной.Кроме того, в устройствах с небольшим количеством потоков происходит сбой.

Я рекомендую использовать меньшее количество потоков, всего 1 или 2, чтобы вы позволили ЦП выполнять другие задачи и избежать плохой производительности.

DEFAULT_NETWORK_THREAD_POOL_SIZE = 2

...