Python | Cómo cronometrar el programa

Este artículo tiene como objetivo mostrar cómo calcular el tiempo que lleva realizar varias tareas. 
Una solución simple es usar el módulo de tiempo . Este módulo contiene varias funciones relacionadas con el tiempo. También es muy útil colocar una interfaz de nivel superior sobre estas funciones y usarlas como un cronómetro, como se explica en el código a continuación: 

Código #1: 

Python3

# Using time module
import time
 
# defining the class
class Timer:
     
def __init__(self, func = time.perf_counter):
    self.elapsed = 0.0
    self._func = func
    self._start = None
 
# starting the module
def start(self):
    if self._start is not None:
        raise RuntimeError('Already started')
    self._start = self._func()
 
# stopping the timer
def stop(self):
    if self._start is None:
        raise RuntimeError('Not started')
    end = self._func()
    self.elapsed += end - self._start
    self._start = None
 
# resetting the timer
def reset(self):
    self.elapsed = 0.0
    @property
 
def running(self):
    return self._start is not None
 
def __enter__(self):
    self.start()
    return self
 
def __exit__(self, *args):
    self.stop()

Podemos iniciar, detener o restablecer este temporizador usando esta clase según lo necesite el usuario para realizar un seguimiento del tiempo total transcurrido en el atributo transcurrido. Para hacerlo, se menciona en el siguiente código: 

Código #2: 

Python3

# using the class Timer()
def countdown(n):
    while n > 0:
        n -= 1
         
# Use 1: Explicit start / stop
time = Timer()
 
# start
time.start()
countdown(1000000)
 
# stop
time.stop()
print(time.elapsed)
 
# Use 2: As a context manager
with time:
    countdown(1000000)
     
print(time.elapsed)
 
with Timer() as t2:
    countdown(1000000)
     
print(t2.elapsed)
  • El código anterior brinda una clase muy simple pero muy útil para medir el tiempo y rastrear el tiempo transcurrido. 
    También ilustró cómo admitir el protocolo de administración de contexto y la declaración with .
  • La función de tiempo subyacente es una preocupación al realizar las funciones de tiempo. Como la precisión de las mediciones de tiempo realizadas con funciones como time.time() o time.clock() varía según el sistema operativo.
  • Por el contrario, time.perf_counter() utiliza el temporizador de mayor resolución disponible en el sistema .

Para calcular el tiempo de CPU utilizado por el proceso, se usa time.process_time() en su lugar, como se explica en el siguiente código: 

Código #3:  

Python3

t = Timer(time.process_time)
with t:
    countdown(1000000)
print(t.elapsed)

Tanto time.perf_counter() como time.process_time() devuelven un «tiempo» en fracciones de segundo. Para dar sentido a los resultados, llame a las funciones dos veces y calcule una diferencia de tiempo ya que el valor real del tiempo no tiene ningún significado particular.
 

Publicación traducida automáticamente

Artículo escrito por manikachandna97 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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