A smarter(?) package importer.

Gordon McMillan gmcm at hypernet.com
Wed Nov 7 08:44:28 EST 2001


Prabhu Ramachandran wrote:

[import caching failures]

> Does the performance boost occur mainly because each subsequent
> failure would mean that sys.modules would have to scan through all of
> its keys and then fail?  Hmmm, but if you kept caching failure, you'd
> increase the number of keys.  If the package nesting is substantial
> for every global module this would insert several new item into
> sys.modules.

But sys.modules is a dictionary. It's hashed, not scanned.
If you *don't* cache failure, you get 3 (4 on Windows) attempted 
opens per directory that you could have avoided.

- Gordon



More information about the Python-list mailing list