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.459049 ms 100%
Do-While 4.904032 ms 199%
While 5.488157 ms 223%
Grundlagen - Kontrollstrukturen - Schleifen - Arrays - Inkrement - Strings - Ausgabefunktionen - echo/print
Startseite   –   Impressum