Algunas veces querrás tomar nota del tiempo promedio que toma ejecutar alguna función. Seguramente ya sabes que puedes usar el módulo timeit, pero seguramente te encontrarás unos cuantos inconvenientes...
In [1]:
def test():
"""Stupid test function"""
L = []
for i in range(100):
L.append(i)
import timeit
timeit.timeit("test()")
El nombre global 'test' no está definido. Y sí, tiene razón. De hecho la documentación de timeit dice que debes utilizar el parámetro setup para ello. Aunque la verdad prefiero algo más sencillo y directo (en este tipo de casos):
In [2]:
timeit.timeit(lambda: test())
Out[2]:
Y sí, también funciona con parámetros
In [3]:
import calendar
import random
def daysinyear(year):
""" Returns how many days has the year """
return 366 if calendar.isleap(year) else 365
year = random.randint(1900, 2014)
timeit.timeit(lambda: daysinyear(year))
Out[3]:
Sencillo, ¿no?
Por Espartaco Palma (@esparta)
Este obra está bajo Licencia Creative Commons Atribución 4.0 Internacional.