[Distutils] entry points PEP

Daniel Holth dholth at gmail.com
Fri Jul 19 14:58:03 CEST 2013

On Fri, Jul 19, 2013 at 5:32 AM, Robert Collins
<robertc at robertcollins.net> wrote:
> On 19 July 2013 21:24, Vinay Sajip <vinay_sajip at yahoo.co.uk> wrote:
>> Robert Collins <robertc <at> robertcollins.net> writes:
>>> So my question here would be - can we make it faster? We have just
>>> been diagnosing a performance problem in nova due to rootwrap being a
>>> pkg_resources scripts entry point : just getting to the first line of
>>> main() takes 200ms, and we make dozens of subprocess calls (has to be,
>>> we're escalating privileges) to the script in question : that time is
>>> nearly entirely doing introspection of metadata from disk.
>> Is there more detailed information about where the time is being spent? e.g.
>> os.stat(), file I/O, parsing of the actual metadata files, load_entry_point()
>> etc.
> Not sure. Joe?
> -Rob

You should at least time it against the simpler "import sys, x.main;
sys.exit(main())" style wrapper.

As a pkg_resources optimization it might be worthwhile to try using
https://github.com/benhoyt/scandir/ or in Python 3, the undocumented
cache used by the importer system, to try to speed things up.

It is a bit tricky to profile pkg_resources since it does a lot of
work at import.

More information about the Distutils-SIG mailing list