Re: [pcre-dev] A tweak for the NO_RECURSE option

Top Page
Delete this message
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.

Thanks for taking the time to explain in detail.

Philip

--
Philip Hazel