Mailinglisten-Archive |
Tom Horstmann wrote: > php-arrays keine reinen arrays sondern hash-Tabellen. Deshalb > muss nicht nur der Wert jedes Elements, sondern auch noch ein > paar Zeiger darauf und schlimmstenfalls noch ein key dazu > gespeichert werden. > Zusätzlich wird Speicher immer in festen Blockgrössen alloziiert. > Wenn Du also nacheinander 2Mio * 1 byte belegen willst, wird > eigentlich 2Mio * 1 * z.B. 32 byte belegt. Hallo Tom und Liste, ich habe gerade mal einen Benchmarktest gemacht, der vielleicht in diesem Zusammenhang ganz interessant ist: <?php $repeat=5000000; $a=""; $b=""; $c=""; $d=""; $e=""; $wert1 = "Sessel"; $wert2 = "Stuhl"; $wert3 = "Tisch"; $wert4 = "3947509345"; $wert5 = "oi345poi3453434"; $arr= array("","","","",""); require_once("Benchmark/Timer.php"); $timer =& new Benchmark_Timer(true); for ($i = 0; $i < $repeat; $i++) { $a = $wert1; $b = $wert2; $c = $wert3; $d = $wert4; $e = $wert5; } $timer->setMarker('Marker 1'); for ($i = 0; $i < $repeat; $i++) { $arr[0] = $wert1; $arr[1] = $wert2; $arr[2] = $wert3; $arr[3] = $wert4; $arr[4] = $wert5; } ?> ================= Im ersten Fall werden 5 einfache Variablen verwendet, im zweiten Fall ein Array. Die erste Variante ist etwa 10% schneller. Marker 1 1089183951.91049400 8.873300 44.87% Stop 1089183962.81416300 10.903669 55.13% total - 19.776969 100.00% Viele Grüße Peter -- http://www.media-palette.de/tools/xml-line/
php::bar PHP Wiki - Listenarchive