Author: Philip Hazel Date: To: Graycode CC: pcre-dev Subject: Re: [pcre-dev] A tweak for the NO_RECURSE option
On Tue, 13 Dec 2011, Graycode wrote:
> I hope you get a chance to review this again in the future. I am
> suggesting that ONE and a maximum of only one frame be placed on the
> stack. This will add a one-time total of roughly 276 bytes of stack
> usage. Regardless of how many times match() and its RMATCH() is used
> during execution of an expression, there will never be more than a
> single instance of 'frame_zero' residing on the stack.
Ah. I now see what you are saying. Sorry for misunderstanding.
> This is a simple tweak that seems to provide some better speed when
> the NO_RECURSE option is used.
I am surprised that it makes so much difference, but if you have
measured it and it does, that just proves my intuition is poor. :-(
> That option is probably not used very often because this isn't enough
> yet to make it comparable to the speed of stack-based recursion.
It is used by some Windows users because of the small default size of
the stack in that environment.
We are rather busy with the 16-bit implementation just at the moment,
but once that is out and released (at least a month away, probably more)
I will check this out as part of ongoing development.