ChrisB: foreach nach bestimmter anzahl beenden

Beitrag lesen

Hi,

For-Schleifen sind übrigens schwerfälliger als While- und While-do-Schleifen... :D Siehe hier

Zitat:

Die For-Schleife ist auch kopfgesteuert, sie ist jedoch wesentlich komplexer als die While-Schleifen. Der Schleifenkopf benötigt drei Ausdrücke: Initialisierung des Iterators (bei Schleifenbeginn), Bedingung(en) (vor jedem Durchlauf) und ein Anweisungsfeld (in der Regel für Iterationserhöhung, welche am Ende eines Durchlaufs ausgeführt wird).

Das allein taugt als Argument in so einem Falle m.E. gar nichts.

Auch bei der While-Schleife, so wie sie im vorliegenden Falle genutzt wird, muss der Zähler erst mal initialisiert werden, und irgendwo im Anweisungsblock auch erhöht werden. Die gleichen Operationen - nur bei der For-Schleife schön zentral an einer überschaubaren Stelle; bei der While-Schleife hingegen irgendwo verstreut.

Die For-Schleife landet bei diesem Test auf Grund ihrer Komplexität wie erwartet auf dem letzten Platz; am schnellsten schafft die do..while Schleife die 100.000 Schleifendurchläufe, da diese die Abbruchbedingungen erst am Ende eines Duchlaufs überprüft und somit keine Sprünge in der Maschinensprache braucht.

Dazu, wie sinnvoll solche Arten von "Performance-Messung" sind bzw. wie praxisrelevant, hat sich dedlfix letztens schon mal sehr treffend geäussert (vorletzter Absatz).

Aber die For-Schleife würde hier einfach besser aussehen. Da gebe ich dir Recht

Und sie nach diesem Kriterium zu wählen, erscheint mir bei PHP alle Mal sinnvoller, als nach irgendwelchen Performance-Überlegungen.

MfG ChrisB

--
Light travels faster than sound - that's why most people appear bright until you hear them speak.