Dass eine For-Downto schneller ist als eine For-To, war mir ja schon klar
Woraus hast du denn diese Aussage jetzt geschlussfolgert? Ist nämlich Blödsinn
Wie auf meinem Screenshot zu sehen besteht sowohl die
for .. to, als auch die
for .. downto Schleife aus den exakt gleichen Instruktionen MOV, INC/
DEC, CMP, JNE.
repeat .. until sieht auf den ersten Blick kompakter aus, als die anderen Schleifen (es fehlt das INC/
DEC), aber man muss bedenken, dass die Zählervariable hier manuell im Schleifenkörper gesetzt werden muss. Demnach würde hier zumindest noch eine weitere Instruktion hinzukommen.
while .. true hat den größten Overhead, da vor Begin der eigentlichen Schleife nochmal dediziert geprüft wird, ob die Bedingung überhaupt erfüllt ist. Dieser Check (hier: CMP, JG) wird allerdings nur ein einziges Mal ausgeführt und beeinflusst daher die eigentliche Laufzeit der Schleife nicht.
Fazit:
In dem von mir getesteten Fall (lokale Funktion mit lokaler Zählervariable) sind alle Schleifen gleich performant.