MTE erklärt: Wie Fortschrittsbalken funktionieren und warum sie die meiste Zeit ungenau sind
Seit der ersten GUI in Windows haben wir mit der Realität von Fortschrittsbalken gelebt. Sie waren immer wie ein zaudernder Freund und sagten dir, dass sie fast fertig sind mit etwas, wenn sie in Wirklichkeit noch weit vom Ende sind. Es gibt ein Gefühl der Frustration, das dich erfüllt, wenn du "99%" auf der Fortschrittsleiste liest, während es dir sagt, dass es eine Sekunde Zeit hat, eine Aufgabe zu beenden, für die letzten fünf Minuten. Wir verstehen Ihre Frustration, weshalb ich genau erklären werde, warum diese Dinge passieren.
Betrachten wir zunächst, wie Fortschrittsbalken funktionieren
Ein Fortschrittsbalken wird erstellt, indem auf einen Dialog geklopft und ein Balken in ihn eingefügt wird. Dieser Balken füllt sich entsprechend dem Prozentsatz des Fortschritts, der beim Ausführen einer Aufgabe erzielt wurde, daher der Name "Fortschrittsbalken". Programmierer machen Fortschrittsbalken ankreuzen, indem sie bestimmte Meilensteine während einer Aufgabe einem Prozentsatz zuweisen. Sobald also ein Fortschrittsbalken den dritten Teil einer Aufgabe mit 100 Teilen erreicht, weiß er, dass er sich nur zu drei Prozent füllen muss.
Manchmal können Programmierer auch einen Timer auf ihren Fortschrittsbalken setzen. Dies wird (immer ungenau) bestimmen, wie viel Zeit eine bestimmte Aufgabe dauert, bis sie beendet ist. Mit dem vorherigen Beispiel nehmen wir an, dass die ersten drei Teile unserer 100-teiligen Aufgabe in drei Sekunden erledigt wurden. Das lässt eine Minute und 37 Sekunden (insgesamt 97 Sekunden) übrig. Aber dieses Zeug funktioniert nur in einer perfekten Welt. Ich werde das unten erklären.
Warum The Bar's Stuck
Fortschrittsbalken sind berüchtigt dafür, dass sie an bestimmten Punkten stecken bleiben. Es ist furchtbar frustrierend, aber es gibt einen Grund für all den Wahnsinn. Wenn eine Fortschrittsleiste den Fortschritt einer Aufgabe misst, verwendet sie bestimmte Kriterien. Angenommen, wir kopieren 1.000 Dateien. Jede dieser Dateien hat wahrscheinlich eine andere Größe. Einige Leute würden 1.000 durch 100 teilen. Es klingt nett, aber berücksichtigt nicht Unterschiede in der Dateigröße. Einige Dateien könnten ein paar MB sein, während andere bis zu 10 GB groß sein könnten!
Sie können auch die Gesamtgröße aller Dateien durch 100 teilen. Es klingt praktisch und genauer, aber es ist immer noch ein Blindgänger. Die Methode berücksichtigt nicht die Geschwindigkeitsschwankungen, die eine Festplatte beim Kopieren verschiedener Dateitypen oder beim Kopieren von Dateien während anderer kurzer Tasks erfährt. Am Ende erhältst du eine Leiste, die dir zeigt, wie weit du gegangen bist, aber nicht, wie viel du erwarten kannst, bis die Aufgabe beendet ist.
Festplatten neigen dazu, kleinere Dateien (oder größere, aber physisch fragmentierte Dateien) langsamer zu kopieren als größere Datenblöcke. Das liegt daran, dass die Suche nach neuen Segmenten innerhalb ihrer physischen Platten beim Zugriff auf 100 kleine Dateien mühsamer ist als bei der Suche nach zwei großen Teilen einer größeren Datei. Das gleiche könnte über Registrierungseinträge gesagt werden. Sie variieren in Länge und Raffinesse.
Einige abschließende Gedanken
Praktisch alles auf Ihrem Computer hat so viele Variablen, dass es unmöglich ist, den Fortschritt einer Aufgabe genau zu bestimmen. Sie haben eine nutzlose Bar auf Ihrem Bildschirm, die nur dazu da ist, Sie davon abzuhalten, einen Anfall zu werfen. Der Kampf ist vorbei. Ihr hartnäckiger Computer wird immer jeden Versuch gewinnen, etwas genau vorherzusagen, das in einem Vakuum sonst rechtzeitig fertig geworden wäre. Sie können wirklich nichts mit Ihren Fortschrittsbalken machen, aber zumindest wissen Sie, warum sie so frustrierend handeln!
Oh, und hier ist ein interessantes kleines Spiel mit Fortschrittsbalken: Progress Wars.
Wenn Sie genauere Möglichkeiten zur Vorhersage von Aufgaben kennen, sollten Sie einen Kommentar hinterlassen!
Dark Laden oder Fortschrittsbalken von BigStockPhoto