PHP Performance Benchmarks & Optimierungstipps

Einfache Schleifen und Durchläufe

Schleifen gehören bei allen Programmiersprachen zu den Grundfunktionne und sind äußerst nützlich, ob für Programmwiederholungen, Arraydurchläufe oder um Zeilen aus einem Datenbankabfrageergebnis zu durchlaufen.

While-Schleife

<?php
$i 
0;
while(
$i 100000) {
    
$i++;
}
?>

Die While-Schleife gehört zu den kopfgesteuerten Schleifen, da zu Begin eines Durchlaufs immer die Abbruchbedingung (Condition) überprüft wird.

Do..While-Schleife

<?php
$i 
0;
do {
    
$i++;
} while(
$i 100000);
?>

Die Do..While-Schleife, in manchen Sprachen auch repat-until gennant, ist Fußgesteuert, d.h. die Abbruchbedingung(en) werden am Ende eines jeden Durchlaufs überprüft. Somit hat jede do..while Schleife mindestens einen Durchlauf.

For-Schleife

<?php
for($i 0$i 100000$i++) {
    
// Kein Code
}
?>

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).

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.

Variante Laufzeit Verhältnis
For 2.460003 ms 100%
Do-While 4.119158 ms 167%
While 5.879164 ms 239%
Grundlagen - Kontrollstrukturen - Schleifen - Arrays - Inkrement - Strings - Ausgabefunktionen - echo/print
Startseite   –   Impressum