mathieu.suen wrote:
Sebastian Bergmann wrote:
Am 13.01.2010 12:18, schrieb mathieu.suen:
Because any optimization, even very simple ones, impose a performance
penalty in the default execution model of PHP which does not use a
bytecode cache.
For simple optimization I don't think so. Take the simple example:
function foo()
{
$a = 45;
return $a;
}
Here if you don't optimize you are creating a variable. So you put
pressure on the gc and the memory.
But most of the time, the act of optimising will take longer than just
compiling and running the code, because you have to make decisions about
whether something can be optimised and the best way to do it. As
Sebastian said, it only makes sense to invest that time when you're
going to be reusing the compiler output. Without an opcode cache, PHP
just throws away the results of the compilation, so there are zero
advantages to optimisation.
Best would be some benchmark.
By the way why there is no native bytecode cache ?
Only when the bytecode is not regenerated for each execution does it
make sense to invest for time for the then one-time compilation.
Sorry I don't understand what do you mean?
What Sebastian means is that it would only make sense to optimise if
you're going to cache the output -- otherwise it is simply wasted time
that could be better spent on other things.
Dave
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php