David Mintz wrote:
I heard somewhere that it does cost to reference/de-reference for no
good reason, and that if youi're not going to write to it, pass it by
value not reference. But I don't remember when or where, so don't ask
me support that with things like facts or sources.
--
David Mintz
http://davidmintz.org/
Wow, what a shocker.
I just ran a quick test and passing by reference is SLOWER by a factor
of 1000.
I'm running the script below on a AMD Athlon XP 2200+ with 1GB RAM
Redhat Fedora Core 5.
(if the email is mangled, you can grab the source from
http://omnistep.com/phpstuff/ )
You need to supply a reasonably large file and repoint the $filename
variable to it before running.
<?php
// Tests speed of passing by reference vs passing by value
// Rolan Yang [EMAIL PROTECTED] Aug 19, 2008
$filename='os-php-cake2-ltr.pdf'; // point this to any fairly large
file (1+ Megabyte?)
$blobofdata=file($filename); // load blob of data into a variable
if (isset($_SERVER['HTTP_USER_AGENT'])) {$newline="<br>\n";} else
{$newline="\n";}
$start=microtime(TRUE);
print "Pass by Reference{$newline}";
print "Start: $start{$newline}";
for ($x=0;$x<500;$x++) {
$a=passByRef($blobofdata); // passes it by reference 500 times
}
$end=microtime(TRUE);
print "End: $end{$newline}Total=".($end-$start).$newline.$newline;
$start=$end;
print "Pass by Value{$newline}";
print "Start: $start{$newline}";
for ($x=0;$x<500;$x++) {
$a=passByValue($blobofdata); // passes it by value 500 times
}
$end=microtime(TRUE);
print "End: $end{$newline}Total=".($end-$start).$newline;
function passByRef(&$bla) {
return $bla;
}
function passByValue($bla) {
return $bla;
}
?>
_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk
NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com
Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php