Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#15

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 11:42
Die Geschwindigkeit von Schleifen ist ein erster Näherung "hinreichend schnell" und in zweiter "egal".

Eine for-in Schleife ist vermutlich einen *Hauch* langsamer, da da einige Funktionsaufrufe versteckt sind.
Es ist sinnvoller, sich auf andere Sachen zu konzentrieren:
1. Die Anweisungen in der Schleife
2. Brauche ich die Schleife? Kann ich eine bessere Datenstruktur einsetzen, die schneller ist und auf die Schleife verzichtet?

P.S.: Schleifen führen Anweisungen 0 bis x fach aus, if-then und case-of sind daher keine Schleifen.
das kann ich auch nur unterschreiben.
Zu seligen TP-Zeiten war es so, daß
for to Schneller war als while und repeat .
Diese beiden waren gleich schnell, den Unterschied machte die Abfrage der Abbruchbedingung aus, was aber nur relevant ist, wenn man um die Millisekunde feilschen muß.

Das if und case nichts mit Schleifen zu tun haben, wurde ja schon geschrieben - warum ist dieser Blödsinn eigentlich nicht auszurotten?.

Case wäre theoretisch schneller, wenn es mit einer Sprungtabelle realisiert würde, das ist allerdings nicht der Fall (soweit ich weiß), somit ist es letztlich für den Compiler egal was eingesetzt wird. Im Sourcecode bevorzuge ich case , da dies doch etwas übersichtlicher ist als ellenlange if..then..else -Konstrukte.


Gruß
K-H

P.S.
@Schönster Mann von allen
Ich glaube Du hast Dich verguckt, die Schleife ist in beiden Fällen gleich lang/groß
(inc cmp jnz)
Und was schneller ist,dec oder inc dazu hab ich auf die Schnelle nichts gefunden
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

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