¿Cómo medir el tiempo de ejecución de la función en R?

En este artículo aprenderemos a medir la ejecución o tiempo de ejecución de una función en el lenguaje de programación R. 

Método 1: usar Sys.time

Para esto, primero cree una función de muestra que se ejecute durante una duración específica. Para hacerlo, pase la duración a la función Sys.sleep().

Sintaxis:   

startTime <- Sys.time()

función()

HoraFinal <- HoraSist.()

Almacene/registre el tiempo antes de la ejecución en la variable startTime, luego, después de la ejecución de la función, almacene el tiempo en la variable endTime . Para obtener la hora actual del sistema, hemos utilizado la función Sys.time() , que no acepta ningún parámetro.

Luego calculamos la diferencia entre el tiempo después de la ejecución y el tiempo antes de la ejecución, esto nos da el tiempo de ejecución (tiempo de ejecución) de la función.

Ejemplo:

R

# sample func, whose exec time will be measured
sleep_func <- function() { Sys.sleep(5) } 
startTime <- Sys.time()
  
sleep_func()
endTime <- Sys.time()
  
# prints recorded time
print(endTime - startTime)

Producción:

Diferencia horaria de 5.005118 segundos

Método 2: usando system.time()

Primero, cree una función de muestra que se ejecute durante un tiempo específico. Luego llame a sleep_func desde el parámetro de system.time( {} ), esto mide y devuelve el tiempo de ejecución de nuestra función sleep_func().

system.time({}) es una función simple que toma cualquier expresión, código o función de R como argumento y devuelve su tiempo de ejecución.

Nota: que la expresión R debe estar encerrada entre “ {} paréntesis ” antes de pasarla como argumento.

Sintaxis: system.time({ expresión R })

Parámetros: 

R-expresión: Cualquier expresión R cuyo tiempo de ejecución se va a medir.

Ejemplo:

R

# sample func, whose exec time will be measured
sleep_func <- function() { Sys.sleep(5) } 
  
system.time({sleep_func()})

Producción:

   sistema de usuario transcurrido 

  0.000 0.000 5.005 

Método 3: usando la biblioteca tictoc

Primero tenemos que instalar e importar la librería llamada “ tictoc ”. Luego definimos nuestra función de muestra que se ejecuta durante una duración específica. Llame a la función tic(), luego coloque cualquier expresión R o código o función(), luego termínelo con la llamada a la función toc(). Imprimirá el tiempo de ejecución de sleep_func(). La función tic() inicia el temporizador y la función toc() finaliza el temporizador, el tiempo transcurrido se mide para cualquier código que se coloque entre estas llamadas de función.

Ejemplo:

R

library(tictoc)
  
sleep_func <- function() { Sys.sleep(5) }
  
tic()
sleep_func()
toc()

Producción:

5.025 segundos transcurridos

Método 4: usar la biblioteca de microbenchmark

Primero tenemos que instalar e importar la biblioteca llamada «microbenchmark» y crear una función de muestra para que funcione durante un tiempo específico.

Sintaxis: microbenchmark( func() )

Parámetros: cualquier expresión o función de R

Pase sleep_func() como argumento en la función microbenchmark() . Imprimirá las puntuaciones de referencia de la función sleep_func(). Primero imprime la unidad que se está utilizando, luego imprime todos los detalles como el tiempo mínimo, el tiempo máximo, la media, la mediana, etc. En nuestro ejemplo, la unidad es milisegundos.

La función microbenchmark() en el lenguaje de programación R proporciona la infraestructura para realizar mediciones y comparaciones precisas del tiempo de ejecución de las expresiones R. Esta función a menudo funciona como un reemplazo del método system.time() que vimos en el Método 2, ya que proporciona resultados más precisos.

Ejemplo:

R

library(microbenchmark)
  
sleep_func <- function() { Sys.sleep(0.5) }
  
microbenchmark(sleep_func())

Producción:

Unidad: milisegundos

         expr min lq media mediana uq max neval

 función_dormir() 500.1297 500.5133 500.9525 500.9391 501.0605 506.7048 100

Método 5: usando la biblioteca rbenchmark

Primero, instale e importe la biblioteca llamada «rbenchmark». 

Sintaxis : punto de referencia (función())

Parámetros : cualquier expresión o función de R

Pase sleep_func() como argumento en la función benchmark(). Imprimirá las puntuaciones de referencia de la función sleep_func().

Ejemplo:

R

library(rbenchmark)
  
sleep_func <- function() { Sys.sleep(0.5) }
  
benchmark(sleep_func())

Producción:

          test replicaciones transcurridas relativo usuario.self sys.self usuario.child sys.child

1 sleep_func() 100 50.08 1 0.02 0 NA NA

Publicación traducida automáticamente

Artículo escrito por sudhanshublaze 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 *