[pypy-dev] [pypy-commit] pypy default: Optimize match.group('name') by making it a module dict.
Carl Friedrich Bolz
cfbolz at gmx.de
Fri Jan 11 16:59:01 CET 2013
On 01/11/2013 04:57 PM, Alex Gaynor wrote:
> Hi Carl,
>
> The reason is that the dict has similar properties to a module dict:
>
> 1) keys are written only once
> 2) lookups are almost always by constant strings
>
> In typical usage a the groupindex dict is never mutated after its
> initial creation, and reads from it are by a precise name of a field,
> therefore by having it be a moduledict we can make re.group('name') be free.
>
> I'll go ahead and add a comment with this info.
>
does that mean that the dict (which is created during parsing) is
stored on the regex object? If yes, that is the connection that I
didn't understand.
CF
> Alex
>
> On Fri, Jan 11, 2013 at 2:17 AM, Carl Friedrich Bolz <cfbolz at gmx.de
> <mailto:cfbolz at gmx.de>> wrote:
>
> Hi Alex,
>
> I don't really understand the first change of this commit. Why is it a
> good idea to change the groupdict of the re parser to be a module dict?
> There are supposed to be "not too many" module dicts, because they are
> promoted on read. So I don't get why this is a sensible change.
>
> Would you please add a comment to the point where the module dict is
> instantiated why this is a good idea, and ideally also a test_pypy_c
> test.
>
> Cheers,
>
> Carl Friedrich
>
>
>
>
>
>
> --
> "I disapprove of what you say, but I will defend to the death your right
> to say it." -- Evelyn Beatrice Hall (summarizing Voltaire)
> "The people's good is the highest law." -- Cicero
More information about the pypy-dev
mailing list