Je n'arrive pas à croire ce que je viens de mesurer :
python3 -m timeit -s "from math import sqrt" "sqrt(2)"
5000000 loops, best of 5: 42.8 nsec per loop
python3 -m timeit "2 ** 0.5"
50000000 loops, best of 5: 4.93 nsec per loop
Cela va à l'encontre de toute intuition... ce devrait être exactement le contraire !
Python 3.8.3 sur macOS Catalina
4 votes
Le premier code a la surcharge de faire un
import
et la seconde ne l'est pas.11 votes
@JohnGordon L'importation se trouve dans la déclaration d'installation, qui ne doit pas être chronométrée.
2 votes
Je répète ce que @John Gordon vient de dire, " Dans ces micro-benchmarks, math.sqrt sera plus lent, en raison du léger temps nécessaire à la recherche du sqrt dans l'espace de noms math. "
7 votes
@AdamBoinet
sqrt
a déjà été recherchée dans la configuration.