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
Do-While 1.695871 ms 100%
While 1.948833 ms 115%
For 2.390862 ms 141%
Grundlagen - Kontrollstrukturen - Schleifen - Arrays - Inkrement - Strings - Ausgabefunktionen - echo/print
Startseite   –   Impressum