Python Timeit() con ejemplos
ยฟQuรฉ es Python ยฟTiempo()?
Python cronomรฉtralo() es un mรฉtodo en Python biblioteca para medir el tiempo de ejecuciรณn que tarda el fragmento de cรณdigo dado. El Python La biblioteca ejecuta la declaraciรณn del cรณdigo 1 millรณn de veces y proporciona el tiempo mรญnimo necesario para el conjunto de fragmentos de cรณdigo dado. Python timeit() es un mรฉtodo รบtil que ayuda a comprobar el rendimiento del cรณdigo.
Sintaxis
timeit.timeit(stmt, setup,timer, number)
Parรกmetros
- stmt: Esto tomarรก el cรณdigo cuyo tiempo de ejecuciรณn desea medir. El valor predeterminado es "aprobar".
- Configure:Esto tendrรก detalles de configuraciรณn que deben ejecutarse antes de la instrucciรณn. El valor predeterminado es "pass".
- minutero: Esto tendrรก el valor del temporizador, timeit() ya tiene un valor predeterminado establecido y podemos ignorarlo.
- nรบmero: El stmt se ejecutarรก segรบn el nรบmero que se proporciona aquรญ. El valor predeterminado es 1000000.
Para trabajar con timeit(), necesitamos importar el mรณdulo, como se muestra a continuaciรณn:
import timeit
Primer ejemplo
Aquรญ hay un ejemplo simple de la funciรณn timeit()
Ejemplo de cรณdigo 1
# testing timeit()
import timeit
print(timeit.timeit('output = 10*5'))
Salida:
0.06127880399999999
Hemos visto un ejemplo simple que nos da el tiempo de ejecuciรณn de la salida de la declaraciรณn de cรณdigo simple = 10*5, y el tiempo que se tarda en ejecutarla es 0.06127880399999999.
Sincronizaciรณn de varias lรญneas en cรณdigo Python
Hay dos formas de ejecutar varias lรญneas de cรณdigo en timeit.timeit(): separando las lรญneas con punto y coma o encerrando el cรณdigo como una cadena entre comillas triples.
A continuaciรณn se muestran ejemplos que muestran su funcionamiento.
Ejemplo 1: uso de punto y coma
import timeit
print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
Salida:
The time taken is 0.137031482
Ejemplo 2: uso de comillas triples
import timeit
import_module = "import random"
testcode = '''
def test():
return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module))
Salida:
C:\pythontest>python testtimeit.py The time taken is 0.182619178
timeit โ Mรฉtodos
Aquรญ hay 2 mรฉtodos importantes de timeit
timeit.default_timer() : Esto devolverรก la hora predeterminada cuando se ejecute.
timeit.repeat(stmt, configuraciรณn, temporizador, repeticiรณn, nรบmero) : igual que timeit() , pero con repetir se llama a timeit() el nรบmero de veces que se da la repeticiรณn.
Ejemplo de programa 1
# testing timeit()
import timeit
import_module = "import random"
testcode = '''
def test():
return random.randint(10, 100)
'''
print(timeit.timeit(stmt=testcode, setup=import_module))
Salida:
0.46715912400000004
Ejemplo
default_timer() Ejemplo
# testing timeit()
import timeit
import random
def test():
return random.randint(10, 100)
starttime = timeit.default_timer()
print("The start time is :",starttime)
test()
print("The time difference is :", timeit.default_timer() - starttime)
Salida:
The start time is : 0.220261875 The time difference is : 0.0004737320000000045
Ejemplo 3: timeit.repeat()
# testing timeit()
import timeit
import_module = "import random"
testcode = '''
def test():
return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))
Salida:
[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]
timeit.repeat() funciona de manera similar a la funciรณn timeit.timeit(), con la รบnica diferencia de que toma el argumento de repeticiรณn y devuelve el tiempo de ejecuciรณn en formato de matriz con valores segรบn el nรบmero de repeticiรณn.
Ejecutando la funciรณn de sincronizaciรณn timeit.timeit() dentro de la interfaz de lรญnea de comandos
La sintaxis para ejecutar su funciรณn dentro de timeit() en la lรญnea de comando es la siguiente:
python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]
Parรกmetros de lรญnea de comando:
- -n N: la cantidad de veces que desea que se ejecute el cรณdigo.
- -r N: el nรบmero de veces que desea que se repita la funciรณn timeit()
- -s S: esto tendrรก detalles de configuraciรณn que se ejecutarรกn antes de la ejecuciรณn del cรณdigo.
- -t: para esto, puedes hacer uso de time.time()
- -c: para esto, puedes hacer uso de time.clock()
- -h: para ayuda
- Declaraciรณn de cรณdigo: Los detalles del cรณdigo.
Ejemplo
C:\pythontest>python -m timeit -s 'text="hello world"' 20000000 loops, best of 5: 13.1 nsec per loop
Otra forma de ejecutar dentro de la lรญnea de comando es como se muestra a continuaciรณn:
Ejemplo
>>> import timeit
>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
The time taken is 0.15048536300000137
>>>
ยฟPor quรฉ timeit() es la mejor manera de medir el tiempo de ejecuciรณn de Python cรณdigo?
Aquรญ hay algunas razones por las que consideramos que timeit() es la mejor manera de medir el tiempo de ejecuciรณn.
- Ejecuta la declaraciรณn del cรณdigo 1 millรณn de veces, que es el valor predeterminado, y a partir de ahรญ, le devolverรก el tiempo mรญnimo necesario. Tambiรฉn puede aumentar/disminuir el millรณn configurando el nรบmero de argumento en la funciรณn time().
- Mientras se ejecuta la prueba, la recolecciรณn de basura se desactiva cada vez mediante la funciรณn time().
- timeit() toma internamente la hora exacta segรบn el sistema operativo que se estรฉ utilizando. Por ejemplo, utilizarรก time.clock() para Windows sistema operativo y time.time() para mac y Linux.
Resumen
Timeit() se utiliza para obtener el tiempo de ejecuciรณn necesario para el cรณdigo pequeรฑo proporcionado.
Parรกmetros utilizados con timeit()
- stmt: Esto tomarรก el cรณdigo que desea medir el tiempo de ejecuciรณn
- configuraciรณn: aquรญ se incluirรกn los detalles de configuraciรณn que deben ejecutarse antes de la instrucciรณn
- temporizador: Esto tendrรก el valor del temporizador, timeit() ya tiene un valor predeterminado establecido y podemos ignorarlo.
- nรบmero: el stmt se ejecutarรก segรบn el nรบmero que se proporciona aquรญ.
