Python Timeit() con ejemplos

⚡ Resumen inteligente

Python La función `timeit()` mide el tiempo de ejecución de un pequeño fragmento de código ejecutándolo repetidamente y devolviendo la duración mínima. Admite los métodos `timeit`, `repeat` y `default_timer`, y funciona tanto desde scripts como desde la línea de comandos.

  • 🇧🇷 Definición de Timeit: Mide el tiempo de ejecución de un fragmento de código, devolviendo el valor mínimo en varias ejecuciones.
  • 🧩 parámetros: Las instrucciones stmt, setup, timer y number controlan qué se ejecuta y con qué frecuencia.
  • 🔁 Métodos: timeit(), repeat() y default_timer() ofrecen diferentes opciones de temporización.
  • 💻 Línea de comando: Ejecuta python -m timeit con opciones como -n, -r y -s.
  • ✅ Por qué usarlo: Deshabilita la recolección de basura y selecciona el temporizador más preciso para cada sistema operativo.

Python Timeit()

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

Code Ejemplo

# 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.

Preguntas Frecuentes

timeit.timeit() ejecuta la instrucción un número determinado de veces y devuelve un único tiempo total. timeit.repeat() ejecuta toda la medición varias veces y devuelve una lista de resultados, lo que permite elegir el mejor.

timeit desactiva la recolección de basura durante la medición para que la limpieza en segundo plano no distorsione la temporización. Esto hace que los resultados sean más consistentes y comparables, centrándose exclusivamente en el tiempo de ejecución del fragmento de código que se está probando.

Puedes separar las instrucciones con punto y coma dentro de la cadena stmt, o pasar una cadena de varias líneas usando comillas triples. Para las funciones, defínelas en setup y llámalas desde stmt.

La IA puede perfilar el código, identificar bucles lentos o llamadas costosas, sugerir alternativas vectorizadas o integradas y recomendar mejores estructuras de datos, ayudar aping Los desarrolladores centran su atención en la optimización donde el tiempo muestra los mayores cuellos de botella.

Sí. A partir de un fragmento de código y sus resultados de timeit, la IA puede proponer reescrituras como comprensiones de listas, expresiones generadoras o funciones de biblioteca; luego, se vuelve a ejecutar timeit para confirmar que la mejora es real.

Resumir este post con: