Hi Marcus,

Yeah, I did a lot of benchmarking different things ;-) and mentioned some
statistics in my original message -- such as 10-15% *overall* improvement
using ApacheBench on a few scripts.  The difference for specific strings
depends on what the string looks like (length, etc.), but is always faster
for both scan/compile time and runtime.  The difference is huge with, for
example, a longer heredoc without variables, like the one in Sara's blog
entry.

And as I also mentioned, removing the ^ beginning-of-line operator from the
old heredoc end token rule, it makes YY_RULE_SETUP empty in the generated C
file, which had been setting yy_at_bol for *every* token matched, just for
the one rule that used it.  Eliminating that overhead for each token made a
measurable difference in *overall scanner performance* -- I'm sure there's
less difference with non-ZTS builds since YY_RULE_SETUP was referencing
globals.

BTW, regarding HEAD, for you, Andrei, or anyone, I think I noticed a bug,
unrelated to my changes: CG(literal_type) isn't set for backticks in the
parser, so it winds up being whatever was last set.  I would've changed it,
but didn't know if it's supposed to always be IS_STRING or dependent on
UG(unicode).


Thanks,
Matt


----- Original Message -----
From: "Marcus Boerger"
Sent: Thursday, April 26, 2007

> Hello Matt,
>
>   the patch looks interesting. I think we should commit it to HEAD. And
> if it works good we can add it to 5.3 once we created it. Did you do any
> measurements?
>
> best regards
> marcus
>
> Thursday, April 26, 2007, 5:52:43 AM, you wrote:
>
> > Hi again,
>
> > Hmm, not a single reply about this patch...?  Did anyone try it out? :-)
> > Think it can be used after 5.2.2?
>
>
> > Matt

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to