Python Timeit () con ejemplos

Tabla de contenido:

Anonim

¿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 tomado del conjunto de fragmentos de código dado. 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".
  • setup : Esto tendrá detalles de configuración que deben ejecutarse antes de stmt. El valor predeterminado es "aprobado".
  • timer : Esto tendrá el valor del temporizador, timeit () ya tiene un valor predeterminado establecido, y podemos ignorarlo.
  • number : 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 timeitprint(timeit.timeit('output = 10*5'))

Producción:

0.06127880399999999

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

Temporización de varias líneas en código python

Hay dos: puede ejecutar varias líneas de código en timeit.timeit (), usando un punto y coma o guardando el código adjunto como una cadena con comillas triples.

Aquí hay ejemplos que muestran su funcionamiento.

Ejemplo 1: uso de punto y coma

import timeitprint("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 timeitimport_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.pyThe time taken is 0.182619178

timeit - Métodos:

Aquí hay 2 métodos importantes de timeit

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

timeit.repeat (stmt, setup, timer, repeat, number) : igual que timeit (), pero con repetir timeit () se llama el número de veces que se repite.

Ejemplo de programa 1:

# testing timeit()import timeitimport_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 timeitimport randomdef 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.220261875The time difference is : 0.0004737320000000045

Ejemplo 3: timeit.repeat ()

# testing timeit()import timeitimport_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 (), con la única diferencia que toma en 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.

Ejecución de la función de temporizació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: la cantidad 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, puede hacer uso de time.clock ()
  • -h: por 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 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 ahí, le devolverá el tiempo mínimo necesario. También puede aumentar / disminuir 1 millón configurando el número de argumento en la función time ().
  • Mientras se ejecuta la prueba, la recolección de basura se deshabilita cada vez por la función time ().
  • timeit () toma internamente la hora exacta según 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 código pequeño dado

Parámetros usados ​​con timeit ()

  • stmt: esto tomará el código que desea medir el tiempo de ejecución
  • configuración: esto tendrá detalles de configuración que deben ejecutarse antes de stmt
  • timer: Esto tendrá el valor del temporizador, timeit () ya tiene un valor predeterminado establecido, y podemos ignorarlo.
  • number: El stmt se ejecutará según el número que se proporciona aquí.