(original) (raw)
On Mon, Feb 6, 2012 at 14:49, Antoine Pitrou <solipsis@pitrou.net> wrote:
On Mon, 6 Feb 2012 09:57:56 -0500
Brett Cannon <brett@python.org> wrote:
> Thanks for any help people can provide me on this now 5 year quest to get
> this work finished.
Do you have any plan to solve the performance issue?
I have not even looked at performance or attempted to profile the code, so I suspect there is room for improvement.
$ ./python -m timeit -s "import sys; mod='struct'" \\
"\_\_import\_\_(mod); del sys.modules\[mod\]"
10000 loops, best of 3: 75.3 usec per loop
$ ./python -m timeit -s "import sys; mod='struct'; from importlib import \_\_import\_\_" \\
"\_\_import\_\_(mod); del sys.modules\[mod\]"
1000 loops, best of 3: 421 usec per loop
Startup time is already much worse in 3.3 than in 2.7\. With such a
slowdown in importing fresh modules, applications using many batteries
(third-party or not) will be heavily impacted.
I have a benchmark suite for importing modules directly at importlib.test.benchmark, but it doesn't explicitly cover searching far down sys.path. I will see if any of the existing tests implicitly do that and if not add it.