> > Well, I assumed that the overhead wouldn't be too significant, but I
> > admit I didn't do any measurements whatsoever. Is there any existing
> > good benchmark, or should I just loop a million times through a few
> > random lines of code and measure this?
>
> Yup :)
OK, I did some _very_ simple measurements, and the results aren't too
bad. But is there really no benchmark that you PHP developers use
regularly to test your changes? What I did must surely be very
artificial, not reflecting real-world usage and performance very
much.
I loop 500,000 times through a block of random code that contains:
- assignment of strings and numbers to simple variables
- function call
- array access by numeric index and by string key
- an if condition
- a string concatenation
- some arithmetic operations
- and occasionally an echo statement
- no usage of the new string types
The script runs for about 47.35 seconds (an average from 10
consecutive runs) on unmodified PHP 4.2.0 (default ./configure with
no parameters), and about 48.02 seconds on my modified version.
That's only 1.4% slower. If you want my opinion, I will gladly
sacrifice that. :-)
The results differ with the code in the loop - in the worst case that
I saw the difference was about 4%, in the best case my modified
version was actually a tiny bit quicker :-))) - must be some
alignment magic.
Any ideas on an improvement of the benchmark?
The script:
<?php
function getmicrotime() {
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
function fun($param) {
return 2 * $param + 1;
}
$time1 = getmicrotime();
echo "Started in time $time1.\n";
for ($i = 0; $i < 500000; $i++) {
$var1 = fun($i);
$var2 = 123456;
$var3 = "asd";
$var4 = array();
if ($var1 < $var2)
$var3 .= "yes";
else
$var3 .= "no: $var2";
if ($i % 200 == 0)
echo "$var3\n";
$var4[] = $var1;
$var4['key'] = $var3;
$var2 = $var4[0] + $var4['key'];
}
$time2 = getmicrotime();
echo "Finished in time $time2.\n";
echo "Duration: " . ($time2 - $time1) . "\n";
?>
Vaclav Dvorak ([EMAIL PROTECTED])
http://nebuchadnezzar.zion.cz/
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php