incompréhension performance while ou de timeit
bonjour,
alors voilà j'ai un petit problème où timeit ne semble pas se mettre d'accord avec lui même,
d'un coté en session interactive :
Code:
1 2 3 4 5 6 7 8
| >>> timeit.timeit("while i<10**5: i+=1", setup="i=0", number=1)
0.010640200000011646
>>> timeit.timeit("while i<10**6: i+=1", setup="i=0", number=1)
0.08264850000000479
>>> timeit.timeit("while i<10**7: i+=1", setup="i=0", number=1)
0.9207111000000054
>>> timeit.timeit("while i<10**8: i+=1", setup="i=0", number=1)
8.68150079999998 |
bon, si j'avais voulu être très précis j'aurais fait le test quelques dizaines de fois mais ce n'est même pas la peine.
en ligne de commande
Code:
1 2 3 4 5 6 7 8 9 10 11
| (venv_temp) D:\>python -m timeit -s "i=0" "while i<10**5: i+=1"
5000000 loops, best of 5: 47.7 nsec per loop
(venv_temp) D:\>python -m timeit -s "i=0" "while i<10**6: i+=1"
5000000 loops, best of 5: 66.4 nsec per loop
(venv_temp) D:\>python -m timeit -s "i=0" "while i<10**7: i+=1"
1 loop, best of 5: 847 msec per loop
(venv_temp) D:\>python -m timeit -s "i=0" "while i<10**8: i+=1"
1 loop, best of 5: 6.98 sec per loop |
les 2 tests ont été fait sur le même env (Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32)
Si quelqu'un à une idée de pourquoi c'est à peu près proportionnel d'un coté et de l'autre pas du tout ?