Как Windows определя количеството време, необходимо за извършване на действие с файл?
"Оставащите време" оценки на Windows са достатъчни, за да подтикнат всеки, който понякога е луд, но се чудили ли сте някога как Windows определя тези времена? Днешната публикация за въпроси и отговори SuperUser има някои отговори за един любопитен, но разочарован, въпрос на читателя.
Днешната сесия за въпроси и отговори идва при нас с любезното съдействие на SuperUser - подразделение на Stack Exchange, групирано от общността уеб сайтове за въпроси и отговори.
Windows 8.1 прозорец за прехвърляне на файлове на екрана с любезното съдействие на IM наистина famecore.
Въпроса
Четецът на суперпотребител "наистина е славен" иска да знае как Windows определя времето, необходимо за извършване на операция с файл:
Исках да знам дали има уравнение, което Windows използва, за да определи колко време е необходимо да се извърши действие с файл, като например: изтриване, копиране, изтриване или инсталиране.
Например, когато изтрия файл и Windows казва Оставащо време: 18 секунди, как се изчислява този номер и какво се използва за изчисляването му?
Използва ли Windows специалното уравнение, за да определи оставащото време за извършване на операция, или просто дава оценка на "най-доброто предположение"?
Отговорът
Сътрудниците на SuperUser Valmiky Arquissandas и Richard имат отговор за нас. На първо място, Valmiky Arquissandas:
Забелязали ли сте, че обикновено не ви дават никакви оценки през първите няколко секунди?
Това е така, защото през първите няколко секунди, това просто прави операцията, която трябва да направи. После, след кратък период от време, той знае колко вече е копирал / изтрил / и т.н., и колко време отне. Това ти дава Средната скорост операцията.
След това разделете оставащите байтове на скоростта и имате времето, необходимо за завършване на операцията.
Това е математика в началното училище. Ако искате да пътувате на 360 километра, а в края на първата минута сте изминали 1 километър, колко време ще ви отнеме да стигнете до целта си?
Ами скоростта е 1 км / минута, така че е 60 км / час. 360 км, разделени на 60 км / час, ви дава приблизително време от 6 часа (или 360 км / 1 км / минута = 360 минути = 6 часа). Тъй като вече сте пътували за една минута, очакваното оставащо време е 5 часа и 59 минути.
Заменете пътуването с копие, км с байтове, и това отговаря на въпроса ви.
Различните системи имат различни начини за оценяване на времето. Можете да вземете последната минута и оценките могат да варират диво. Или можете да вземете цялото време и ако скоростта действително се промени постоянно, вашите оценки може да са далеч от реалността. Това, което описах, е най-простият метод.
Следван от отговора на Ричард:
Ако се интересувате, този въпрос ви казва как Windows и OSX форматират времето, останало в лентата за напредък, след като има представа колко време остава..
При съкращаване на времеви изрази в диалозите за напредък, те трябва да се закръглят нагоре или надолу?
Raymond Chen, разработчик от екипа на Windows в Microsoft, потвърждава този алгоритъм (виж отговора на Валмики по-горе) в публикация в блога му. Той също обяснява защо може да е погрешно.
Защо диалоговият прозорец за копиране дава такива ужасни оценки?
Имате ли какво да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други технологични потребители на Stack Exchange? Вижте пълната тема за дискусия тук.