[R-es] R y la gestión de memoria
Carlos J. Gil Bellosta
gilbellosta en gmail.com
Mar Ago 10 11:32:22 CEST 2010
Hola, ¿qué tal?
Voy a plantear una pregunta que no creo que sea enteramente
relacionada con R. Incluso pudiera ser una pregunta que tuviera que
ver más con Windows y su gestión de memoria.
Tengo una función foo que toma un argumento numérico y devuelve otro
número. Durante el proceso crea un objeto muy grande.
La llamo muchas veces haciendo algo así como:
resultados <- sapply( entradas, foo )
En Windows XP (no lo he probado en Linux) la memoria ocupada por R
comienza a crecer hasta que el proceso muere. Sin embargo, uno espera
que el uso de memoria se mantenga constante durante la sucesión de
llamadas a foo: al fin y al cabo, son secuenciales.
He solucionado el problema borrando explícitamente el objeto grande
dentro de foo y llamando a gc() justo después. Sin embargo, me
gustaría saber por qué después de cada llamada a foo (en la
implementación original de la función) R (o Windows) no devuelven la
memoria que utiliza.
¿Alguna pista?
Un saludo,
Carlos J. Gil Bellosta
http://www.datanalytics.com
Más información sobre la lista de distribución R-help-es