Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Расчет оставшегося времени

335
12 октября 2005 года
enola
379 / / 25.01.2005
Добрый день!
есть задача: подсчет оставшегося времени;
у меня в цикле идет загрузка данных в терминал, через com порт, причем каждая последующая запись грузится медленнее, чем предыдущая.
Как подсчитать время оставшееся до конца загрузки?

Пробовал производить подсчет по формуле арифметической прогрессии, но что-то не очень нравится.
335
13 октября 2005 года
enola
379 / / 25.01.2005
Может, тогда кто-нибудь подскажет, как реализован подсчет оставшегося времени в Far, RAR и др. программах? Хотя бы примерно.
406
13 октября 2005 года
vitaly2003s
481 / / 27.07.2004
Цитата:
Originally posted by enola
Может, тогда кто-нибудь подскажет, как реализован подсчет оставшегося времени в Far, RAR и др. программах? Хотя бы примерно.



Да очень просто. Берется отрезок времени после начала какого нибудь процесса обработки данных и обрабатывается в течении определенного интервала ну скажем для удобства 1 секунды. теперь мы имеем общее колво данных,обработанное за 1 секунду колво данны и время за которое обработалась данная порци я и соответсвенно можеш сразу приблизительно расчитать сколько всего времени потребуется для оставшегося обема к примеру по такой формуле
//время
оставшеся время_1 = общее_колво_данных / колво_ данных_обработанных_за_1_секунду ;
//обработанный объем
обработанное_колво_данных+=колво_ данных_обработанных_за_1_секунду;

Ну вот теперь мы приблизительно можем сказать юзеру скоко примерно осталось секунд на обработку всего обема данных.

И затем в прцессе обработки корректируем это значение оп новой вычисляя уже по такой формуле
//время
оставшеся время_2 = (общее_колво_данных-обработанное_колво_данных) / колво_ данных_обработанных_за_1_секунду (секунды)
//обработанный объем
обработанное_колво_данных+=колво_ данных_обработанных_за_1_секунду;

надеюсь ты уловил смысл. А уж как ты там будеш учитывать прошедшее время и колво обработанных данных это твое дело. Можеш в отдельный поток вынести а можеш прям в обработчике данных прописать. Короче на че твоей фантазии хватит.

335
14 октября 2005 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by vitaly2003s
Да очень просто. Берется отрезок времени после начала какого нибудь процесса обработки данных и обрабатывается в течении определенного интервала ну скажем для удобства 1 секунды. теперь мы имеем общее колво данных,обработанное за 1 секунду колво данны и время за которое обработалась данная порци я и соответсвенно можеш сразу приблизительно расчитать сколько всего времени потребуется для оставшегося обема к примеру по такой формуле
//время
оставшеся время_1 = общее_колво_данных / колво_ данных_обработанных_за_1_секунду ;
//обработанный объем
обработанное_колво_данных+=колво_ данных_обработанных_за_1_секунду;

Ну вот теперь мы приблизительно можем сказать юзеру скоко примерно осталось секунд на обработку всего обема данных.

И затем в прцессе обработки корректируем это значение оп новой вычисляя уже по такой формуле
//время
оставшеся время_2 = (общее_колво_данных-обработанное_колво_данных) / колво_ данных_обработанных_за_1_секунду (секунды)
//обработанный объем
обработанное_колво_данных+=колво_ данных_обработанных_за_1_секунду;

надеюсь ты уловил смысл. А уж как ты там будеш учитывать прошедшее время и колво обработанных данных это твое дело. Можеш в отдельный поток вынести а можеш прям в обработчике данных прописать. Короче на че твоей фантазии хватит.



спасибо

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог