[Python-Dev] inspect.py very slow under 2.5

Ralf Schmitt ralf at brainbot.com
Wed Sep 6 13:22:45 CEST 2006

Nick Coghlan wrote:
> It looks like the problem is the call to getabspath() in getmodule(). This 
> happens every time, even if the file name is already in the modulesbyfile 
> cache. This calls os.path.abspath() and os.path.normpath() every time that 
> inspect.findsource() is called.
> That can be fixed by having findsource() pass the filename argument to 
> getmodule(), and adding a check of the modulesbyfile cache *before* the call 
> to getabspath().
> Can you try this patch and see if you get 2.4 level performance back on 
> Fernando's test?:

no. this doesn't work. getmodule always iterates over 
sys.modules.values() and only returns None afterwards.
One would have to cache the bad file value, or only inspect new/changed 
modules from sys.modules.

> http://www.python.org/sf/1553314
> (Assigned to Neal in the hopes of making 2.5rc2)
> Cheers,
> Nick.

More information about the Python-Dev mailing list