>> I don't know if this still holds true, but at one point during the >> 2.x series I think it was pretty expensive to perform imports inside >> functions, much more expensive than in 1.5.2 at least (maybe right >> after nested scopes were introduced?). Alex> Doesn't seem to be true in 2.3, if I understand what you're saying: Alex> [alex@lancelot src]$ python Lib/timeit.py -s'def f(): pass' 'import math; f()' Alex> 100000 loops, best of 3: 4.04 usec per loop Alex> [alex@lancelot src]$ python Lib/timeit.py -s'def f(): import math' 'pass; f()' Alex> 100000 loops, best of 3: 4.05 usec per loop Yes, you're correct. Guess I could have run that myself had I been thinking. (My sleeping cap wasn't on much last night, so my thinking cap hasn't been on much today.) Guido, any chance you can quickly run the above two through the thirty-leven versions of Python you have laying about so we can narrow this down or refute my faulty memory? I've seen some recent posts by you which had performance data as far back as 1.3. I tried with 2.1, 2.2 and CVS but saw no discernable differences within versions: % python ~/local/bin/timeit.py -s'def f(): pass' 'import math; f()' 100000 loops, best of 3: 7.44 usec per loop % python ~/local/bin/timeit.py -s'def f(): import math' 'f()' 100000 loops, best of 3: 7.6 usec per loop % python2.2 ~/local/bin/timeit.py -s'def f(): pass' 'import math; f()' 100000 loops, best of 3: 9.19 usec per loop % python2.2 ~/local/bin/timeit.py -s'def f(): import math' 'f()' 100000 loops, best of 3: 9.05 usec per loop % python2.1 ~/local/bin/timeit.py -s'def f(): pass' 'import math; f()' 100000 loops, best of 3: 9.16 usec per loop % python2.1 ~/local/bin/timeit.py -s'def f(): import math' 'f()' 100000 loops, best of 3: 9.12 usec per loop Maybe it was 2.0? Thx, Skip
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4