Fortschrittsbalken verlangsamen Ausführungsgeschwindigkeit

Fortschrittsbalken, in Delphi häufig in Form einer TProgressbar oder TGauge zu sehen, sollen dem Anwender zeigen, wie weit eine Operation schon fortgeschritten ist.Natürlich kostet das ständige Aktualisieren des Fortschrittsbalken Rechenzeit, womit die Ausführung der Operation teilweise erheblich verlangsamt wird, wie folgendes Beispiel zeigt:

Es würde reichen, die Progressbar nur bei jedem n-ten mal zu aktualisieren:

Wie oft die Progressbar letztendlich aktualisiert werden soll, hängt natürlich von der jeweiligen Situation ab.Dazu sei gesagt, dass sich die Eigenschaft “Smooth” der Progressbar, falls sie den Wert True hat, ebenfalls negativ auf die Performance auswirkt.Damit eine Anwendung während einer langen Rechenphase noch benutzbar ist, ruft man in der Regel zwischenzeitlich Application.ProcessMessages auf. Dieser Aufruf kostet auch eine Menge Rechenzeit. Auch hierbei würde es wieder reichen, Application.ProcessMessages nur bei jedem n-ten Durchlauf aufzurufen.