[Python-Dev] New miniconf module
Phillip J. Eby
pje at telecommunity.com
Thu Jul 27 00:03:50 CEST 2006
At 05:43 PM 7/26/2006 -0400, Sylvain Fourmanoit wrote:
> > The loading code could also be made a lot faster by using a dictionary
> > mapping AST node types to functions, instead of doing string
> > manipulation for each node. Each function could take 'pedantic' as a
> > parameter, which would eliminate the need to have an object at all, let
> > alone a singleton.
> >
>I am not convinced the current string manipulation for mapping the nodes
>types to the methods of the _Load class has such a significant impact on
>performance, but I will test your suggestion...
I haven't tested this with your code specifically, but I know that in the
past I have nearly tripled the speed of AST-visiting code by doing this;
string manipulation plus attribute lookup is a lot more expensive than
direct dictionary lookups.
> The only difference with
>current code is that we use a dynamically computed string as the
>dictionary key to locate the function instead of the node type themselves
>as keys.
Actually you're doing string manipulation plus an *attribute* lookup, and
attribute lookups can involve multiple dictionary lookups. But anyway,
test and see what you get. :)
>But I agree this looks a lot like JSON, since ecmascript syntax for
>literals looks a lot like the one of Python... For the same reasons there
>is a need for JSON, I think having something like miniconf in the
>standard lib would benefit the users.
Actually, I would see more reason to include JSON in the standard library,
since it's at least something approaching an internet protocol these days.
More information about the Python-Dev
mailing list