[SciPy-User] Bottleneck 0.4.1

Keith Goodman kwgoodman at gmail.com
Sun Mar 13 17:32:39 EDT 2011


On Tue, Mar 8, 2011 at 6:06 PM, Wes McKinney <wesmckinn at gmail.com> wrote:

> One random question. Any idea on the long import time:
>
> $ time python -c "import bottleneck"
>
> real    0m0.712s
> user    0m0.546s
> sys     0m0.114s
> $ time python -c "import numpy"
>
> real    0m0.142s
> user    0m0.090s
> sys     0m0.049s
> $ time python -c "import scipy"
>
> real    0m0.201s
> user    0m0.132s
> sys     0m0.066s

Bottleneck imports are now 3x faster. I switched to a lazy import of
scipy (Bottleneck rarely uses scipy).

Before:

$ time python -c "import bottleneck"
real	0m0.196s
user	0m0.150s
sys	0m0.040s

After:

$ time python -c "import bottleneck"
real	0m0.061s
user	0m0.010s
sys	0m0.050s

Does adding Bottleneck to your package increase the import time by
0.06 seconds? No, not if your package imports numpy:

$ time python -c "import numpy; import bottleneck"
real	0m0.060s
user	0m0.020s
sys	0m0.030s

I used this pattern for lazy imports:

email = None
def parse_email():
    global email
    if email is None:
        import email

which I found here:
http://wiki.python.org/moin/PythonSpeed/PerformanceTips#Import_Statement_Overhead

Thanks, Wes, for the report.



More information about the SciPy-User mailing list