Colección de citas famosas - Slogan de motivación - Siete formas de detectar el tiempo de ejecución, el uso de CPU y de memoria del programa Python

Siete formas de detectar el tiempo de ejecución, el uso de CPU y de memoria del programa Python

1. Utilice el decorador para medir el tiempo de ejecución de la función.

Una forma sencilla es definir un decorador que mida el tiempo de ejecución de la función y genere el resultado:

Importar tiempo

Importar contenedor desde la herramienta de función

p>

Importación aleatoria

def fn_timer (función):

? @wraps(función)

? def function_timer(*args, **kwargs):

? t0= tiempo.tiempo()

? resultado= función(*args, **kwargs)

? t1= tiempo.tiempo()

? print("Tiempo total de ejecución %s: %s segundos" %

? (función. __name__, str(t1- t0))

)

? Devolver resultados

Devolver function_timer

@ fn _timer

Definir orden aleatorio(n):

? Devuelve el resultado ordenado ([random . random()for I in range(n)])

if __name__== "__main__ ":

? Clasificación aleatoria (2000000)

Salida: tiempo total para ejecutar random_sort: 0,59060 segundos.

Para usarlo, simplemente agregue @fn_timer a la definición de función que desea monitorear.

O

#Monitorear el tiempo de ejecución del programa

Importar tiempo

Importación aleatoria

Definir reloj (función):

def wrapper(*args, **kwargs):

start_time= time.time()

resultado= func(*args, ** kwargs)

end_time= time.time()

Print(" * * * Tiempo:% s segundos " % ronda(final _ Hora-inicio _ Hora, 5) )

Hacer eco del resultado

Devolver el paquete

@clock

Definir orden aleatorio(n):

? Devuelve el resultado ordenado ([random . random()for I in range(n)])

if __name__== "__main__ ":

? Clasificación aleatoria (2000000)

Resultados de salida: * *Tiempo: 0,65634 segundos.

2. Utilice el módulo timeit

Otro método es utilizar el módulo timeit para calcular el consumo de tiempo promedio.

Ejecute el siguiente script para ejecutar el módulo.

Timing_functions aquí es el nombre del archivo de script de Python.

Al final del resultado, puedes ver los siguientes resultados: 4? Bucle, ¿el mejor? 5:?2,08?segundos por bucle

Esto significa que la prueba se ejecutó cuatro veces, con un promedio de cinco repeticiones por prueba. El mejor resultado de la prueba es 2,08 segundos.

Si no especificas el número de pruebas o repeticiones, el valor predeterminado es 10 pruebas con 5 repeticiones cada una.

3. Utilizar el comando time en sistemas Unix.

Sin embargo, tanto decorador como timeit están basados ​​en Python. La utilidad de tiempo de Unix es muy útil al probar Python en un entorno externo.

Utilidad en tiempo de ejecución:

El resultado es:

¿Total? tiempo de ejecución random_sort:? 1.3931210041 segundos

¿Reales? 1.49

¿Usuario? 1.40

sistema? 0.08

La primera línea proviene de un decorador predefinido, las otras tres líneas son:

? Real representa el tiempo total para ejecutar el script.

? El usuario representa el tiempo de CPU consumido en la ejecución del script.

? Sys representa el tiempo dedicado a ejecutar funciones del kernel.

Nota: Según Wikipedia, un kernel es un programa informático que gestiona la entrada y salida de software y lo traduce en instrucciones de procesamiento de datos que pueden ser ejecutadas por CPU y dispositivos electrónicos en otras computadoras.

Por lo tanto, la diferencia entre el tiempo de ejecución real y el tiempo de ejecución de Usuario+Sistema es el tiempo que dedica el sistema a realizar entradas/salidas y otras tareas.

4. Utilice el módulo cProfile

5. Utilice el módulo line_profiler

6. Utilice el módulo Memory_profiler

Utilice el paquete guppy