Saltar al contenido

Python Timeit () con ejemplos

¿Qué es Python Timeit ()?

Python timeit () es un método en la biblioteca de Python para medir el tiempo de ejecución que toma el fragmento de código dado. La biblioteca de Python ejecuta la declaración de código 1 millón de veces y proporciona el tiempo mínimo necesario para el conjunto particular de botones de código. Python timeit () es un método útil que ayuda a verificar el rendimiento del código.

Sintaxis:


timeit.timeit(stmt, setup,timer, number)

Parámetros

  • stmt: Esto tomará el código para el que desea medir el tiempo de ejecución. El valor predeterminado es “aprobado”.
  • arreglo: Esto establecerá los datos que deben ejecutarse antes de stmt. El valor predeterminado es “aprobado”.
  • Temporizador: Esto tendrá el valor del temporizador, timeit () ya tiene un conjunto de valores predeterminado, que podemos ignorar.
  • número: El stmt se ejecutará de acuerdo con el número dado 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 una función timeit ()

Código de ejemplo 1:


# testing timeit()
import timeit
print(timeit.timeit('output = 10*5'))

Producción:


0.06127880399999999

Hemos visto un ejemplo simple que da el tiempo de ejecución de salida de la declaración de código simple = 10 * 5, y el tiempo necesario para ejecutarlo es 0.06127880399999999.

Tiempo lineal en código python

Hay dos que puede ejecutar varias líneas de código en timeit.timeit (), utilizando un punto y coma o mediante el código adjunto como una cadena para guardar comillas triples.

A continuación, se muestran ejemplos que ilustran cómo funciona.

Ejemplo 1: utilice un semiconductor


import timeit
print("The time taken is ",timeit.timeit(stmt="a=10;b=10;sum=a+b"))

Producción:


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))

Producción:


C:pythontest>python testtimeit.py
The time taken is  0.182619178

timeit – Métodos:

Aquí hay 2 modos de tiempo importantes

timeit.default_timer () : Esto devolverá el tiempo predeterminado cuando se ejecute.

timeit.repeat (stmt, configuración, temporizador, iteración, número) : igual que timeit (), pero con la repetición, el tiempo () recibe el número de veces que se da una 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))

Producción:


0.46715912400000004

Ejemplo 2:

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)

Producción:


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))

Producción:


 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat () funciona de manera similar a la función timeit.timeit (), y la única diferencia es que toma la iteración y devuelve el tiempo de ejecución en un formato de matriz con valores de acuerdo con la iteración.

Función de temporización de ejecución Timeit.timeit () dentro de la interfaz de línea de comandos

La sintaxis para realizar 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 necesita ejecutar el código.
  • -r N: el número de veces que necesita repetir la función timeit ()
  • -s S: contendrá el conjunto de datos que se ejecutarán antes de ejecutar el código.
  • -t: para esto puedes usar am.time ()
  • -c: para esto puedes usar time.clock ()
  • -h: por ayuda
  • declaración de código: 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 en que puede 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 del código Python?

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 de código 1 millón de veces, que es el valor predeterminado, y a partir de eso, le devolverá el tiempo mínimo necesario. También puede aumentar / disminuir 1 millón configurando el número de argumentos en la función time ().
  • Al realizar la prueba, la recolección de basura se deshabilita cada vez mediante la función ().
  • timeit () toma internamente la hora exacta de acuerdo con el sistema operativo que se esté utilizando. Por ejemplo, usará time.clock () para el sistema operativo Windows y time.time () para Mac y Linux.

Resumen

Timeit () se usa para obtener el tiempo de ejecución necesario para el pequeño código dado

Parámetros usados ​​por timeit ()

  • stmt: Esto tomará el código que necesita para medir el tiempo de ejecución.
  • corrección: esto establecerá los datos que deben ejecutarse antes de stmt
  • timer: Esto tendrá el valor del timer, timeit () ya tiene un conjunto de valores predeterminado, que podemos ignorar.
  • number: El stmt se ejecutará de acuerdo con el número dado aquí.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *