|
Модераторы: Snowy, Poseidon, MetalFan |
|
RAIN666 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 15.2.2019 Репутация: нет Всего: нет |
Здравствуйте.
Нужно скачать много маленьких файлов, попутно объединяя их в один большой файл. Написал код:
Это работает, но есть проблемы. Во-первых: иногда скачивание просто застревает. Иногда на пару секунд, иногда на минуту и более, а иногда вообще навсегда. Если оно застряло и возобновлилось, то иногда теряется несколько килобайт или мегабайт. А иногда не теряется. Если скачать один файл несколько раз, то размер, зачастую, получается разный. По-этому, приходится скачивать один файл несколько раз, выбирать те, у которых одинаковый размер, потом сравнивать их хэш. Если хэш сошёлся хотя-бы у двух файлов - файл считается успешно скачанным. Разумеется, это делается пользователем (мной) вручную. А так как размер скачиваемых файлов находится в промежутке 7-14гб, то выполнение этой процедуры каждый раз - довольно проблематично и ресурсозатратно. И времени уходит немерено. Во-вторых: скорость скачивания упирается в ~3,7mb/s. Хотя интернет позволяет качать со скоростью ~6,5mb/s. В-третьх: скорость может и не доходить до 3,7mb/s. Иногда она сильно колеблится 0,7mb/s, 2,0mb/s, 1,0mb/s, 0,2mb/s, 3,3mb/s и т.п. При этом, переключение в цикле с файла на файл происходит тоже сильно медленнее, чем когда оно стабильно качает на 3,7mb/s. Таким образом, один большой файл может качаться более четырёх часов. Как это иправить? Это сообщение отредактировал(а) RAIN666 - 26.3.2019, 12:12 |
|||
|
||||
RAIN666 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 15.2.2019 Репутация: нет Всего: нет |
странно, что никто не знает
|
|||
|
||||
kami |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 6 Всего: 72 |
Судя по комментариям автора mORMot - WinInet является весьма тормознутым встроенным механизмом.
Собственно, мне приходилось ловить отказы в обслуживании запросов при его использовании. Я бы рекомендовал уйти на что-то немного более "оберточное" по отношению к прямым вызовам WinAPI. Можете счесть за рекламу, но упомянутый мной выше mORMot в плане сетевого обмена ни разу не подвел. В данном случае - класс TWinHTTP с событием OnProgress из состава этого фреймворка может спасти отца русской демократии если, конечно, нет прямого запрета на замену кода. Собственно, у меня прошла именно такая замена, и вот уже более года сервис, использующий этот компонент, не перезапускался |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
Модератор: Сообщение скрыто. |
|||
|
||||
RAIN666 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 15.2.2019 Репутация: нет Всего: нет |
||||
|
||||
RAIN666 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 15.2.2019 Репутация: нет Всего: нет |
||||
|
||||
goalken |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 13.6.2019 Репутация: нет Всего: нет |
Я недавно присоединился к этому форуму и надеюсь, что все помогут мне, и хотел бы познакомиться со всеми run 3
|
|||
|
||||
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |