SASGIS - SAS.Планета
View Issue Details
0001716SAS.Планета[All Projects] Багpublic28-11-2012 07:4805-12-2012 13:20
Papazol 
 
normaltweakhave not tried
confirmedopen 
WindowsXPProfessional SP3
110418 
40xxxx 
0001716: Неточно считается оставшееся время при закачке
Если качать большой полигон, и прервать закачку на 70-90%, либо изменить форму полигона, добавив к нему дополнительный участок, то при следующей закачке этого полигона оставшееся время считается неправильно. Это происходит из-за того, что программа довольно быстро определяет, что бОльшая часть полигона уже имеется в кэше. Оставшееся время считается исходя из общего количества тайлов, следовательно, на закачку оставшейся части, по мнению программы, остаётся совсем немного времени. По идее, время, потраченное на имеющиеся в кэше тайлы, учитывать не нужно, тогда оставшееся время будет более реальным.
Взять большой полигон, начать его скачивание. Когда останется скачать 20...10%, выйти из скачивания. Начать скачивание снова.
Или
Скачать полигон, затем изменить его форму, добавив дополнительный участок. Скачать этот полигон снова.
No tags attached.
Issue History
28-11-2012 07:48PapazolNew Issue
28-11-2012 12:23Dima2000Note Added: 0010078
30-11-2012 21:06PapazolNote Added: 0010096
30-11-2012 21:43vasketsovNote Added: 0010097
01-12-2012 07:40PapazolNote Added: 0010098
01-12-2012 11:55GarlNote Added: 0010105
01-12-2012 15:08PapazolNote Added: 0010111
01-12-2012 19:21GarlNote Added: 0010113
02-12-2012 08:27PapazolNote Added: 0010114
05-12-2012 13:05vdemidovProduct Version.Nightly => 110418
05-12-2012 13:05vdemidovTarget Version => 40xxxx
05-12-2012 13:05vdemidovSummaryНеверно считается оставшееся время при закачке => Неточно считается оставшееся время при закачке
05-12-2012 13:20vdemidovStatusnew => confirmed

Notes
(0010078)
Dima2000   
28-11-2012 12:23   
Тоже долго удивлялся странностям в подсчёте оставшегося времени и объёма для скачки. Думал как надо считать чтобы было точнее и лучше. Потом с калькулятором в руках понял КАК именно оно считается - и дошло, что лучше просто не сделать потому что нет данных для такого расчёта.
Программа не имеет понятия сколько тайлов из списка уже выкачаны в кэш, она знает лишь сколько всего тайлов нужно, сколько осталось проверить и сколько тайлов удалось скачать (и за какое время), вот по этим данным и расчитывает, что если качать все оставшиеся тайлы с той же средней скоростью, то ... А есть они в кэше или нет - сиё никому неведомо и быстро проверить это нереально.
Потому расчёт верен, просто другой (видимо не совсем очевидный). И предлагаю закрыть тикет как нерешаемый.
(0010096)
Papazol   
30-11-2012 21:06   
А вот если просто не учитывать файлы, которые уже есть в кэше, при подсчёте скорости скачивания?
Я понимаю алгоритм подсчёта так (если ошибаюсь, поправьте):
Tост = Nост / Vскач,
где Tост - оставшееся время, Nост - оставшееся количество файлов, подлежащее обработке, Vскач - скорость скачивания.
В свою очередь,
Vскач = Nзад / Tскач,
где Nзад - некоторое заданное количество файлов, Tскач - время, за которое скачалось это количество файлов,
Nост = Nобщ - Nобр,
где Тобщ - общее количество файлов в полигоне, Nобр - количество уже обработанных (и скачанных, и проверенных) файлов.
Тогда формула получается
Tост = ((Nобщ - Nобр) * Tскач) / Nзад.
Если считать оставшееся время только после того, как будут именно СКАЧАНЫ очередные Nзад файлов, ошибка за счёт уже имеющихся в кэше файлов устремится к нулю. Пусть первые данные по оставшемуся времени придут лишь после проверки большого количества уже имеющихся файлов, на это нужно некоторое время, но на скачивание его нужно на несколько порядков больше.
(0010097)
vasketsov   
30-11-2012 21:43   
>ошибка за счёт уже имеющихся в кэше файлов устремится к нулю
Неправда. Проблема в общем виде до нуля нерешаема, так как неизвестно, сколько тайлов будет ещё пропущено впереди (потому что они уже есть). То что есть тайлы в _начале_ полигона и они пропукаются в _начале_ скачки - лишь частный случай.

>Vскач = Nзад / Tскач
Да. В такой оценке тоже есть смысл. Более того, чаще всего именно она будет точнее существующей (не только из-за дыр, но и из-за неравномерности скорости скачки, разной скорости отдачи http 200 и http 404 по областям где нет покрытия, и т.п. локальным эффектам).

>Пусть первые данные по оставшемуся времени придут лишь после проверки
Надо просто не точное время скачки показывать, а диапазон из этих двух значений, старого и по этому алгоритму. Или просто максимальное )))
(0010098)
Papazol   
01-12-2012 07:40   
Максимальное время как раз и важно, ибо для чего оно (оставшееся время) вообще нужно? При существующем алгоритме указывается, напротив, минимальное время. В общем, есть над чем поразмыслить.
(0010105)
Garl   
01-12-2012 11:55   
тут примерна та же ситуация как с подсчётом оставшегося времени копирования файлов в windows один в один!
побороть её не получается даже у micrsoft.
(0010111)
Papazol   
01-12-2012 15:08   
А если сохранить закачку в файл и потом запустить его, как будет подсчитываться оставшееся время? Учитывается ли при этом то, что уже скачано?
(0010113)
Garl   
01-12-2012 19:21   
>А если сохранить закачку в файл и потом запустить его, как будет подсчитываться
>оставшееся время? Учитывается ли при этом то, что уже скачано?
будет показано невероятно быстрое время до окончания скачивания и при каждом скачанном тайле время будет расти и приближаться к реальному.
(0010114)
Papazol   
02-12-2012 08:27   
Значит, так же работает, как и при обычном запуске.