Как Windows определяет количество времени, которое требуется для выполнения действия с файлом?
Оценок «оставшегося времени» в Windows достаточно, чтобы время от времени кого-нибудь сводить с ума, но задумывались ли вы, как Windows определяет эти времена? В сегодняшнем посте SuperUser Q & A есть ответы на любопытный, но разочарованный вопрос читателя..
Сегодняшняя сессия вопросов и ответов пришла к нам благодаря SuperUser - подразделению Stack Exchange, группе веб-сайтов вопросов и ответов, управляемой сообществом..
Скриншот окна Windows 8.1 для передачи файлов любезно предоставлен im famecore.
Вопрос
SuperUser Reader 'Im действительно Famecore' хочет знать, как Windows определяет количество времени, которое потребуется для выполнения операции с файлом:
Я хотел знать, существует ли уравнение, которое Windows использует для определения того, сколько времени требуется для выполнения действий с файлом, таких как: удаление, копирование, удаление или установка.
Например, когда я удаляю файл и Windows говорит Оставшееся время: 18 секунд, как он вычисляет это число и что он использует для его вычисления?
Использует ли Windows специальное уравнение для определения времени, оставшегося до выполнения операции, или она просто дает оценку «наилучшего предположения»?
Ответ
Вкладчики SuperUser Valmiky Arquissandas и Ричард ответят за нас. Прежде всего, Валмики Аркиссандас:
Заметили ли вы, что это обычно не дает вам никаких оценок в течение первых нескольких секунд?
Это потому, что в течение первых нескольких секунд он просто выполняет ту операцию, которую должен выполнить. Затем, через короткое время, он знает, сколько он уже скопировал / удалил / и т.д., а также сколько времени это заняло. Это дает вам Средняя скорость операции.
Затем разделите оставшиеся байты на скорость, и у вас будет время, необходимое для завершения операции.
Это начальная школа по математике. Если вы хотите проехать 360 км, и в конце первой минуты вы проехали 1 км, сколько времени вам потребуется, чтобы добраться до пункта назначения?
Ну, скорость составляет 1 км / мин, так что это 60 км / ч. 360 км, разделенные на 60 км / час, дают приблизительное время в 6 часов (или 360 км / 1 км / мин = 360 минут = 6 часов). Поскольку вы уже путешествовали одну минуту, оставшееся время составляет 5 часов 59 минут..
Замените путешествие копией, км с байтами, и это ответит на ваш вопрос.
Разные системы имеют разные способы оценки времени. Вы можете взять последнюю минуту, и оценки могут сильно отличаться. Или вы можете использовать все свое время, и если скорость действительно постоянно меняется, ваши оценки могут быть далеки от реальности. То, что я описал, является самым простым методом.
Далее следует ответ Ричарда:
Если вам интересно, этот вопрос расскажет вам, как Windows и OSX форматируют время, оставшееся до индикатора выполнения, когда у него есть представление о том, сколько времени осталось.
При сокращении временных выражений в диалоговых окнах прогресса они должны быть округлены в большую или меньшую сторону.?
Раймонд Чен, разработчик команды Windows в Microsoft, подтверждает этот алгоритм (см. ответ Валмики выше) в публикации в своем блоге. Он также объясняет, почему это может быть неправильно.
Почему диалог копирования дает такие ужасные оценки?
Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полным обсуждением здесь.