phpbar.de logo

Mailinglisten-Archive

[php] Array-Funktionen vs. literale Angabe

[php] Array-Funktionen vs. literale Angabe

Tobias Daur daur at gmx.de
Son Feb 11 17:18:07 CET 2007


Hi zusammen,

> a) ist ca.
> doppelt so schnell wie b).
> (6ms vs 13ms bei 10000x[] vs 10000x array_push auf meinem Athlon 64
> 3700+, 2GB DDR2 Win2k php 5.2).

Hmm. Ich habe hier ein wenig getestet und komme auf folgendes Ergebnis:

Bis etwa 50 Durchläufen ist array_push schneller, darüber ist array[]
schneller. Allerdings nie im Faktor 2 bei mir. 

Allerdings hat IMHO der Aufbau des Prüfskriptes großen Einfluß auf das
Ergebnis. Ich poste mal mein Testscript, auf daß ihr es mir zerpflücken
möget. 
Um sicher zu sein, habe ich die Reihenfolge der beiden Testschleifen
vertauscht, das Ergebnis blieb gleich.

hth

Tobias


<?php
/**
 * 
 * Script zum Messen der Performance:
 * 
 * array_push() vs. array[]
 * zum Hinzufügen von array-Einträgen.
 *
 *
 */

require_once 'Benchmark/Iterate.php';

$benchmark = new Benchmark_Iterate;

$aTest = array();
$aTest2 = array();

$timer = new Benchmark_Timer();
$timer->start();
$z = 10; // abwechselnd auf 1,10,100,1000,10000 gesetzt. 

for($i = 0; $i < $z;$i++) {
	$aTest2[] = 'test';
}
$timer->setMarker('nach array[]');

for($i = 0; $i < $z;$i++) {
	array_push($aTest,'test');
}

$timer->setMarker('nach array_push');

$timer->display();
?>




php::bar PHP Wiki   -   Listenarchive