ProgressSvc.exe

Jul 13, 2014 23:51

Представьте себе следующую ситуацию. Вы качаете два файла, размером в 100 и 200 мегабайт. Процесс загрузки начался одновременно. Оба сервера способны отдавать файлы с большей скоростью, чем позволяет ваше Интернет-соединение. Поэтому ваши 2 мегабайта в секунду соединения делятся поровну, и для первого файла ожидаемое время закачки вычисляется в 100 ( Read more... )

Leave a comment

Comments 10

blackyblack July 13 2014, 20:07:15 UTC
А интересная идея. Только получается, что все клиенты должны сообщать этому сервису, что именно они начали закачивать. Достаточно одного клиента, который забил на это дело, чтобы всё сломалось.

Reply

clayrat July 13 2014, 23:55:14 UTC
ну, можно коннекшен через него открывать только

Reply

nealar July 14 2014, 03:31:32 UTC
И получится не сервис, а очередной компонент ядра.

Reply

clayrat July 14 2014, 09:43:55 UTC
ну да, тут постановка задачи такая, что "надо всю систему менять"

Reply


tonsky July 14 2014, 04:25:30 UTC
С точки зрения человека - это простое и естественное поведение, которого ждешь от компьютера (алё, у тебя вся информация есть). С точки зрения программиста это одна из тех невозможных задач, аля теоремы ферма, которую легко описать, но когда начинаешь реализовывать, поднимается АД. Потому что программисты заплутали в трех соснах и заигрались в абстракции.


... )

Reply

udpn July 14 2014, 16:10:05 UTC
Да на самом деле прогнозы времени завершения обычно вообще не нужны, нужно Интернет-соединение потолще. Но глаза-то мозолит.

Reply


thedeemon July 14 2014, 06:33:00 UTC
А что делать, если размер данных заранее неизвестен? Идет стрим откуда-то, влияет на скорость других закачек, когда закончится - хз.

Reply

blackyblack July 14 2014, 10:15:59 UTC
С точки зрения пользователя должно быть так:
1. Запустили первую закачку. Появился прогресс-бар и время.
2. Запустили вторую закачку. Появился прогресс-бар и время + поменялось время у первой закачки.
3. Запустили стрим. Появился бесконечный прогресс-бар (опционально) + поменялось время у всех закачек.
4. Остановили стрим. Время у остальных закачек скакнуло обратно.

В итоге решение с глобальным менеджером соединений позволит правильно посчитать время в одном-единственном случае: несколько параллельных закачек с известным объёмом и скоростью скачивания. Во всех остальных случаях прогресс-бары как скакали, так и будут скакать.

Reply

udpn July 14 2014, 16:06:26 UTC
Ну не только в одном. Есть ещё удаление и установка ПО, BOINCи всякие. И, учитывая, что этот случай преобладает, этого будет достаточно. А вообще всякие стримы через сеть обычно имеют вполне конкретное время завершения (полтора часа фильма или вебинара, например), и подсчитать время окончания не представляет сложности, только протоколы нужны.

Reply


Leave a comment

Up