Mailinglisten-Archive |
Am Dienstag, 7. März 2006 10:00 schrieb Sebastian Mendel: > huiuiui, ich bin aber wieder Arrogant heute mit meinem Nichtwissen ... > > habe die Quelle doch noch gefunden (wurde hier schon mal geposted) > > in den Kommentaren: > http://ilia.ws/archives/12-PHP-Optimization-Tricks.html Hi, ich habe mal von der Seite einen Vorschlag zum Testen übernommen und etwas erweitert. Jetzt weiss ich nicht, ob ich durch irgendetwas das Testscript unbrauchbar gemacht habe, aber wenn man dieses Script mehrmals nacheinander aufruft, so kommen immer wieder unterschiedliche Ergebnisse raus. Mal ist diese Version des inkrementierens schneller, mal diese. Es gibt vielleicht eine Tendenz, aber auf keinen Fall ein eindeutiges Ergebnis zugunsten einer Version. Testsystem ist ein Linux-Rechner, der absolut nichts zu tun hat, also es laufen nur systemerhaltende Prozesse. Pentium II 350 MHz mit 300irgendwas RAM. PHP 4.4.0 Wenn das Testscript brauchbar ist, dann... ja was dann... dann kann ich das Ergebnis nur so deuten, dass es zumindest in dieser Größenordnung egal ist, welche Methode man zum inkrementieren benutzt. Vielleicht ändert sich das Verhalten ja noch, wenn mehr Last am Server ist, aber bis 1000000 Schleifendurchläufen hat sich das Ergebnis auf meinem Testsystem immer wieder bestätigt. Freue mich über eure Meinung. Gruss Andi Das ist das Script welches ich ein wenig erweitert habe: --------- code --------------------- #!/usr/local/bin/php <?php $count = 100000; $i = 0; $timeparts_1 = explode( " ", microtime() ); $starttime_1 = $timeparts_1[1] . substr( $timeparts_1[0], 1 ); while ( $i < $count ) { ++$i; } $timeparts_1 = explode( " ", microtime() ); $endtime_1 = $timeparts_1[1] . substr( $timeparts_1[0], 1 ); $time_1 = bcsub( $endtime_1, $starttime_1, 10 ); echo "1. Time to execute: " . $time_1 . " seconds!\n"; echo "---------------------\n"; $j = 0; $timeparts_2 = explode(" ", microtime() ); $starttime_2 = $timeparts_2[1] . substr( $timeparts_2[0], 1 ); while ( $j < $count ) { $j++; } $timeparts_2 = explode( " ", microtime() ); $endtime_2 = $timeparts_2[1] . substr( $timeparts_2[0], 1 ); $time_2 = bcsub( $endtime_2, $starttime_2, 10 ); echo "2. Time to execute: " . $time_2 ." seconds!\n"; echo "---------------------\n"; if ( $time_1 < $time_2 ) { $diff = bcsub( $time_2, $time_1, 10 ); echo "Version 1 faster\n"; echo "Difference: " . $diff . " seconds!\n\n"; } else { $diff = bcsub( $time_1, $time_2, 10 ); echo "Version 2 faster\n"; echo "Difference: " . $diff . " seconds!\n\n"; } ?> --------- code ---------------------
php::bar PHP Wiki - Listenarchive