On Mon, 20 Jun 2011, Robert Eisele wrote:
> The constants true, false and null are used very often. Unfortunately,
> every usage of either of these constants invokes a constant lookup.
> There is no problem with this, constant lookups are fast, but I
> nevertheless implemented these constants directly in the lexer to
> avoid these lookups. I'd be glad to see this change in 5.4 as the
> performance enhancement would be a steal.
Would that not break the following code?:
<?php
class bar
{
function true()
{
return true;
}
}
$A = new bar;
$A->true();
?>
> I've also added a new OP code to hard-code count() and strlen() which
> improves the performance by ~800%. This is nice, but limits the usage
> of count() and strlen() as method name - if no further changes will be
> made at the parser. I would rather see a optimization for every
> function call in 5.4.x. I'll take a look at this soon, maybe I can
> provide a patch for this, too.
Although it's a nice performance increase, I think that breaking
count() as a method name is not a good idea, as I would assume it's
used a lot. Even though count() and strlen() can be optimised that much,
how much does it buy a fully fledged application?
Then there is also the deliberation on whether it's good to go this
general direction, because I am sure we can make a case to convert every
function into an opcode perhaps.
cheers,
Derick
--
http://derickrethans.nl | http://xdebug.org
Like Xdebug? Consider a donation: http://xdebug.org/donate.php
twitter: @derickr and @xdebug
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php