Как можно предсказать время работы программы? Как вообще делают похожие системы(инсталяторы, и прочие программы не имеющие одного вида работы, а ряд работ, причем различные по типу(запись в базу, чтение файла, парсинг XML))?
Здравствуйте, na1s, Вы писали:
N>Как можно предсказать время работы программы? Как вообще делают похожие системы(инсталяторы, и прочие программы не имеющие одного вида работы, а ряд работ, причем различные по типу(запись в базу, чтение файла, парсинг XML))?
Ну судя по тому что выдают эти пресловутые инсталяторы, преобладают два метода "от фонаря" и "с потолка". Первый пожалуй поточней...
Здравствуйте, dimitry2, Вы писали:
D>Здравствуйте, na1s, Вы писали:
N>>Как можно предсказать время работы программы? Как вообще делают похожие системы(инсталяторы, и прочие программы не имеющие одного вида работы, а ряд работ, причем различные по типу(запись в базу, чтение файла, парсинг XML))?
D>Ну судя по тому что выдают эти пресловутые инсталяторы, преобладают два метода "от фонаря" и "с потолка". Первый пожалуй поточней...
Здравствуйте, na1s, Вы писали:
N>А никто ничего подобного не делал?
Предсказать можно достаточно приближенно. Например читаем файл в котором находится 1000 записей:
1) Запускаем таймер
2) Читаем 10 записей
3) Умножаем полученное время на 100
4) Получаем прогноз
5) В последующих итерациях прогноз уточняем
В неблагоприятных условиях, понятное дело прогноз будет, как верно заметили, либо от фонаря, либо еще откуда.
Здравствуйте, Ytz, Вы писали:
Ytz>Здравствуйте, na1s, Вы писали:
N>>А никто ничего подобного не делал?
Ytz>Предсказать можно достаточно приближенно. Например читаем файл в котором находится 1000 записей: Ytz>1) Запускаем таймер Ytz>2) Читаем 10 записей Ytz>3) Умножаем полученное время на 100 Ytz>4) Получаем прогноз Ytz>5) В последующих итерациях прогноз уточняем Ytz>В неблагоприятных условиях, понятное дело прогноз будет, как верно заметили, либо от фонаря, либо еще откуда.
Но я читаю файл, пишу в базу и прочее в рандомном порядке. Мне как быть?
Здравствуйте, na1s, Вы писали:
N>Как можно предсказать время работы программы? Как вообще делают похожие системы(инсталяторы, и прочие программы не имеющие одного вида работы, а ряд работ, причем различные по типу(запись в базу, чтение файла, парсинг XML))?
Да они не очень-то точно предсказывают. Методика, судя по виду, примерно такая: берется фактически потраченное время, делится на количество фактически переработанных файлов, умножается на общее количество файлов — получается грубая оценка полного времени. Если вычесть из нее фактически потраченное, получится оценка оставшегося. О том, что разные файлы могут потребовать разного времени на переработку, никто особо не парится.
Здравствуйте, buka123, Вы писали:
B>Но я читаю файл, пишу в базу и прочее в рандомном порядке. Мне как быть?
Если знаете сколько раз надо читать/писать в базу/файл, то набираете статистику сколько в среднем уходит времени на данные операции, а далее просто умножаем число записей в базу на среднее время записи в базу и т.д. Ну в общем панацеи нет.