Quellcode
- <?
- $startzeit = microtime(); //Der aktuelle Unix-Timestamp/Zeitstempel in Mikrosekunden
- //Ihr Skript
- $range = range(1,1000);
- $i = 0;
- foreach($range as $range){
- echo $i;
- $i++;
- }
- echo '<br /><br />';
- $endzeit = microtime() - $startzeit; //Differenz des jetzigen Zeitstempel mit dem vom Anfang
- echo 'Ausführzeit: '. round ($endzeit, 6) .' Sekunden';
- ?>
Quellcode
- <?
- $startzeit = microtime(); //Der aktuelle Unix-Timestamp/Zeitstempel in Mikrosekunden
- //Ihr Skript
- $range = range(1,1000);
- function foreach2($array){
- $num = count($array);
- $i = 0;
- while($i < $num){
- echo $i;
- $i++;
- }
- }
- foreach2($range);
- echo '<br /><br />';
- $endzeit = microtime() - $startzeit; //Differenz des jetzigen Zeitstempel mit dem vom Anfang
- echo 'Ausführzeit: '. round ($endzeit, 6) .' Sekunden';
- ?>
Was glaubt ihr, wer schneller war?
Code1: Ausführzeit: 0.001211 Sekunden
Code2: Ausführzeit: 0.001161 Sekunden
Und es lag _immer_ in etwa in diesem Bereich.
Ich hatte mir das schon gedacht, aber eine Begründung fällt mir nicht ein.
Warum ist die while-Schleife trotz mehr Code und allem schneller als die foreach-Schleife?
Gruß