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