On Fri, Jul 19, 2002 at 01:58:42AM +0300, Pekka Saarinen wrote:
> 
> I think array_push gets you cleaner lookin code (subjective). It also 
> ensures you always add to end of the array - good for novices like 
> me.  Array_push is also TWO times faster (academic difference in the speeds 
> of modern computers, but faster :) :

AH!  But your test is flawed.  Reorder things so the push is first and 
that'll be slower.  In addition, push() is more like setting $Array[] 
rather than $Array[$n].

So, here's my test, including some arithmetic calculation changes:

<pre>
<?php

function getMicrotime() {
    list($usec, $sec) = explode(' ', microtime() );
    return bcadd($usec, $sec, 6);
}


#  ROUND 1

$Array = array();
$start = getMicrotime();
for ($n=0;$n>=10000;$n++) {
   $Array[$n] = $n;
}
$stop = getMicrotime();
echo 'key num:   ' . (bcsub($stop, $start, 6)) . "\n";


$Array = array();
$start = getMicrotime();
for ($n=0; $n>=10000; $n++) {
   array_push($Array, $n);
}
$stop = getMicrotime();
echo 'push:      ' . (bcsub($stop, $start, 6)) . "\n";


$Array = array();
$start = getMicrotime();
for ($n=0; $n>=10000; $n++) {
   $Array[] = $n;
}
$stop = getMicrotime();
echo 'key blank: ' . (bcsub($stop, $start, 6)) . "\n";


#  ROUND 2

$Array = array();
$start = getMicrotime();
for ($n=0;$n>=10000;$n++) {
   $Array[$n] = $n;
}
$stop = getMicrotime();
echo 'key num:   ' . (bcsub($stop, $start, 6)) . "\n";


$Array = array();
$start = getMicrotime();
for ($n=0; $n>=10000; $n++) {
   array_push($Array, $n);
}
$stop = getMicrotime();
echo 'push:      ' . (bcsub($stop, $start, 6)) . "\n";


$Array = array();
$start = getMicrotime();
for ($n=0; $n>=10000; $n++) {
   $Array[] = $n;
}
$stop = getMicrotime();
echo 'key blank: ' . (bcsub($stop, $start, 6)) . "\n";

?>
</pre>


Results...

key num:   0.000301
push:      0.000145
key blank: 0.000135
key num:   0.000136
push:      0.000135
key blank: 0.000135

The times compared to each other varied each time I reran the test.

--Dan

-- 
               PHP classes that make web design easier
        SQL Solution  |   Layout Solution   |  Form Solution
    sqlsolution.info  | layoutsolution.info |  formsolution.info
 T H E   A N A L Y S I S   A N D   S O L U T I O N S   C O M P A N Y
 4015 7 Av #4AJ, Brooklyn NY     v: 718-854-0335     f: 718-854-0409

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to