Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#17

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 12:36
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.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)

Geändert von Zacherl (10. Dez 2014 um 12:42 Uhr)
  Mit Zitat antworten Zitat