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.
Resum
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í.