¿Es posible controlar la cantidad de memoria que está en uso o que R ha utilizado para llamar a una función? Por ejemplo, tengo una función arbitraria, por ejemplo:Monitorizar el uso de la memoria en R
smallest.sv <- function(){
A <- matrix(rnorm(1e6), 1e3);
mysvd <- svd(A);
return(tail(mysvd$d, 1));
}
Ejecución de la función simplemente devuelve un escalar, pero una gran cantidad de memoria se utilizó para calcular la función. Ahora necesito hacer benchmarking de rendimiento. El tiempo de procesamiento es fácil:
system.time(x <- smallest.sv())
Sin embargo también me gustaría saber la cantidad de memoria que se necesitaba para esta llamada, sin modificar la función (que debería funcionar para funciones arbitrarias). ¿Hay alguna manera de hacer esto?
Editar: para aclarar un poco. Estoy interesado principalmente en el límite superior de la memoria que estaba en uso durante la llamada de la función, es decir, cuánta memoria física se requiere para poder procesar la llamada a la función. En muchos casos, esto es significativamente menor que la cantidad total de memoria asignada, creo.
Hola Jeroen. ¿Resolviste este problema? ¿Cuál fue tu solución? También estoy enfrentando este problema. Deseo monitorear el límite superior de la memoria utilizada durante la llamada de la función. –
Eche un vistazo a profvis: https://github.com/rstudio/profvis – Jeroen
gracias, Jerson. Lo revisé antes. Pero me parece que el paquete solo se usa para perfilar el tiempo utilizado por el código. No vi la funcionalidad de la supervisión de la memoria. ¿Me perdí algo aquí? ¿O podrías darme más pistas? –