Несколько причин, по которым происходит замедление скорости загрузки в параллельных потоках:
- Конкуренция за общие ресурсы. 2 Если потоков больше, чем ядер, на переключение контекстов потоков расходуется процессорное время. 2
- Вклинивание другого потока. 2 Во время скачивания одного файла может вклиниваться другой поток со своим файлом, и в итоге время на скачивание одного файла становится больше (хотя общее время на скачивание группы файлов может быть и меньше). 2
- Ограничения на параллельные загрузки в браузерах. 4 Большинство браузеров ограничивают число параллельных запросов к одному хосту двумя, что может приводить к задержкам при загрузке большого числа объектов с одного сервера. 4
Для оптимизации скорости загрузки в параллельных потоках рекомендуется, например, выравнивать и увеличивать размер одновременно загружаемых объектов, чтобы максимально использовать имеющиеся соединения. 4