[Numpy-discussion] "import numpy" performance

Andrew Dalke dalke@dalkescientific....
Mon Jul 2 18:16:40 CDT 2012


On Jul 3, 2012, at 12:46 AM, David Cournapeau wrote:
> It is indeed irrelevant to your end goal, but it does affect the
> interpretation of what import_array does, and thus of your benchmark

Indeed.

> Focusing on polynomial seems the only sensible action. Except for
> test, all the other stuff seem difficult to change without breaking
> anything.

I confirm that when I comment out numpy/__init__.py's "import polynomial"
then the import time for numpy.core.multiarray goes from

0.084u 0.031s 0:00.11 100.0%	0+0k 0+0io 0pf+0w

to

0.058u 0.028s 0:00.08 87.5%	0+0k 0+0io 0pf+0w


numpy/polynomial imports:
from polynomial import Polynomial
from chebyshev import Chebyshev
from legendre import Legendre
from hermite import Hermite
from hermite_e import HermiteE
from laguerre import Laguerre

and there's no easy way to make these be lazy imports.


Strange! The bottom of hermite.py has:

exec polytemplate.substitute(name='Hermite', nick='herm', domain='[-1,1]')

as well as similar code in laguerre.py, chebyshev.py, hermite_e.py,
and polynomial.py.

I bet there's a lot of overhead generating and exec'ing
those for each import!



				Andrew
				dalke@dalkescientific.com




More information about the NumPy-Discussion mailing list