Medir código en Python
timeit lo corre suficientes veces para que signifique algo, en un espacio aislado.
import timeit
setup = "valores = list(range(1000))"
bucle = timeit.timeit("total = 0\nfor v in valores: total += v",
setup=setup, number=2000)
integrado = timeit.timeit("sum(valores)", setup=setup, number=2000)
print(f"bucle {bucle / 2000 * 1e6:.1f} us por llamada")
print(f"integrado {integrado / 2000 * 1e6:.1f} us por llamada")
print(f"{bucle / integrado:.1f}x")
print(min(timeit.repeat("sum(valores)", setup=setup, number=500, repeat=3)))
Cómo funciona
numberes cuántas repeticiones cronometrar.setupcorre una vez y no se cuenta.- Compara el costo por llamada, no los totales.
Palabras clave y builtins usados aquí
minprint
El intento, en números
- Líneas
- 12
- Caracteres a escribir
- 449
- Tokens
- 119
- Ritmo de tres estrellas
- 110 tpm
Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 65 segundos.
Paso 1 de 4 en Medición e introspección; paso 35 de 41 en Herramientas de dominio.