Вычислите время окончания длительной задачи по её производительности. Укажите общее количество, что уже сделано и с какой скоростью — и получите оставшееся время и момент завершения.
Сколько ещё до того, как это будет готово? Укажите общее количество, сколько уже выполнено и какую скорость вы держите — и он вычислит оставшееся время и момент завершения по часам.
Прогресс0%
Оставшееся время
–
Общая длительность
–
Завершится в
–
Оценка времени завершения без самообмана
Арифметика тривиальна, а предположение — нет
ETA — это одно деление: оставшаяся работа, делённая на скорость. Если осталось 40 000 строк и вы держите 500 строк в минуту, вперёд ещё на 80 минут. Этот калькулятор выполняет деление, переводит ответ в удобные единицы и прибавляет к времени запуска, чтобы вы получили реальное время по часам, а не длительность, которую потом пришлось бы складывать в уме.
Сложная часть — не деление. Оно предполагает, что измеренная скорость продержится до конца выполнения, а это предположение чаще ошибочно, чем верно. Массовый импорт замедляется по мере роста индексов. Загрузки ускоряются, когда TCP заканчивает раскачку. Пакетные задания натыкаются на пласт необычно больших записей. ETA — это проекция настоящего, а не предсказание будущего, и стоит произнести это вслух, прежде чем кто-то запишет число в отчёт о статусе.
Выбирайте окно скорости осознанно
Поскольку оценка наследует любую скорость, которую вы ей скармливаете, окно измерения — самый влиятельный входной параметр на странице. Скорость, взятая за последние десять секунд, отзывчива и дёргается: она будет сильно скакать и выдавать новую ETA при каждом взгляде. Скорость, усреднённая за всё выполнение, стабильна, но медленно реагирует, и она будет цитировать оптимистичное число ещё долго после того, как задание увязло.
Для чего-то короткого используйте среднее за всё выполнение. Для задания, измеряемого часами, скользящее окно в несколько минут обычно даёт верный баланс: достаточно свежее, чтобы заметить замедление, и достаточно длинное, чтобы не реагировать на каждый сбой. Если два числа резко расходятся, это расхождение само по себе полезный сигнал — значит, скорость меняется, и честный ответ — диапазон, а не единственная метка времени.
Читайте общую длительность вместе с остатком
Инструмент показывает и общую длительность, и оставшееся время, и пара информативнее каждой по отдельности. Если задание выполнено на 5% и общая длительность читается как одиннадцать часов, вы сразу понимаете, что это не то, за чем стоит сидеть и наблюдать, независимо от того, что говорит остаток. Это также даёт проверку здравым смыслом: если прогнозируемое общее время сильно отличается от того, сколько то же задание заняло на прошлой неделе, либо измерение скорости неверно, либо что-то действительно изменилось — и оба варианта стоит исследовать до завершения выполнения.
Процент прогресса показывается по той же причине. В начале выполнения, когда завершённых единиц мало, оценка скорости держится на очень немногих выборках, и ETA близка к бессмысленной. Наблюдение за ростом процента говорит, когда за оценкой уже достаточно данных, чтобы на неё ссылаться.
Часто задаваемые вопросы
Как вычисляется оставшееся время?
Введённая скорость приводится к единицам в секунду, затем оставшиеся единицы делятся на эту скорость. Всё остальное — удобная длительность, метка завершения, процент — выводится из этого одного числа.
Почему показываются только две единицы?
Потому что «3 д 4 ч» проще использовать, чем «3 д 4 ч 12 м 7 с». В таком масштабе минуты и секунды — это шум, и меньшие единицы отбрасываются, а не округляются, так что ничего не скрывается.
Можно ли использовать для не данных?
Да. Единицы — это то, чем вы их называете: строки, файлы, километры, страницы, заявки. Калькулятор никогда не предполагает, что значит единица, поэтому подходит всё, у чего есть счётное общее количество и измеримая скорость.
Что, если скорость меняется в процессе?
Введите текущие значения заново. У инструмента нет памяти о предыдущих вводах, поэтому обновление числа выполненного и наблюдаемой скорости даёт свежую проекцию исходя из того, где задание находится сейчас.
Учитывает ли время завершения часовые пояса?
Время завершения отображается в местном часовом поясе вашего браузера с использованием форматирования вашей локали. Поле запуска тоже в местном время по часам, поэтому они согласованы между собой.
Отправляется ли что-то на сервер?
Нет. Каждое значение остаётся на странице — весь расчёт — это горстка арифметических операций в вашем браузере, поэтому загружать нечего.