MTE объясняет: как работают индикаторы прогресса и почему они в большинстве случаев неточны

С момента появления первого графического интерфейса в Windows мы живем в реальности индикаторов выполнения. Они всегда были похожи на друга, откладывающего дела на потом, говоря вам, что они почти закончили с чем-то, хотя на самом деле они, вероятно, далеки от конца. Когда вы читаете "99%" на индикаторе выполнения, вы испытываете чувство разочарования, когда оно говорит вам, что у вас осталась одна секунда для завершения задачи за последние пять минут. Мы понимаем ваше разочарование, поэтому я объясню, почему именно это происходит.

Во-первых, давайте посмотрим, как работают индикаторы прогресса.

Индикатор выполнения создается нажатием на диалоговое окно и помещением в него полосы. Эта полоса заполняется в соответствии с процентом прогресса, достигнутого в выполнении задачи, отсюда и название "полоса прогресса". Программисты заставляют индикаторы выполнения двигаться, относя определенные вехи во время выполнения задачи к процентам. Итак, как только индикатор выполнения достигает третьей части задачи, содержащей 100 частей, он знает, что должен заполниться только на три процента.

Иногда программисты могут также поставить таймер на свои индикаторы выполнения. Это будет (всегда неточно) определять, сколько времени потребуется для выполнения конкретной задачи. Используя предыдущий пример, предположим, что первые три части нашей задачи из 100 частей были выполнены за три секунды. Остается одна минута и 37 секунд (всего 97 секунд). Но эта штука работает только в идеальном мире. Я объясню ниже.

Почему бар застрял

Полосы прогресса известны тем, что застревают в определенных точках. Это ужасно расстраивает, но за всем безумием есть причина. Когда индикатор выполнения измеряет ход выполнения задачи, он использует определенные критерии. Например, предположим, что мы копируем 1000 файлов. Каждый из этих файлов, вероятно, имеет разный размер. Некоторые люди разделят 1000 на 100. Звучит неплохо, но не учитывает различия в размерах файлов. Некоторые файлы могут занимать пару МБ, а другие - до 10 ГБ!

pbarstuck-timeleft

Вы также можете разделить общий размер всех файлов на 100. Это звучит практично и точнее, но все же это бесполезно. Этот метод не учитывает колебания скорости жесткого диска при копировании файлов разных типов или при копировании файлов при выполнении других коротких задач. В конце концов, вы получаете полосу, которая просто показывает, как далеко вы зашли, но не то, сколько вы можете ожидать завершения задачи.

Жесткие диски обычно копируют файлы меньшего размера (или более крупные, но физически фрагментированные) медленнее, чем большие фрагменты данных. Это связано с тем, что процесс поиска новых сегментов на физических пластинах более утомителен при доступе к 100 небольшим файлам по сравнению с процессом поиска двух огромных фрагментов большего файла. То же самое можно сказать и о записях в реестре. Они различаются по длине и сложности.

Некоторые заключительные мысли

Практически все на вашем компьютере связано с таким количеством переменных, что невозможно точно определить ход выполнения задачи. На экране остаётся бесполезная полоса, которая служит лишь для того, чтобы вы не впали в истерику. Бой окончен. Ваш упрямый компьютер всегда победит любую попытку точно предсказать что-то, что в противном случае было бы выполнено своевременно. Вы действительно ничего не можете сделать со своими индикаторами прогресса, но, по крайней мере, вы знаете, почему они действуют таким разочаровывающим образом!

О, и вот интересная маленькая игра, связанная с индикаторами прогресса: Progress Wars.

Если вы можете придумать более точные способы прогнозирования задач, обязательно оставьте комментарий ниже!

Темный индикатор загрузки или выполнения от BigStockPhoto

2 комментария

  1. Я ненавижу индикаторы выполнения, которые доходят до конца, а затем повторяются. Зачем беспокоиться. Неточная полоса лучше, чем бесполезная.


    Согласовано! Хотя ... Неточные столбцы также могут раздражать, когда они застревают на 99% в течение часа. Затем они переходят на 100% и остаются там еще 5 минут. Да, и давайте не будем забывать о тех, которые говорят, что у вас осталось несколько секунд на перевод, а затем заставляют вас ждать минут 10.

Комментарии закрыты.