[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