[R-es] gestión de la memoria en R? (o Eclipse)

Xavier de Pedro xavier.depedro en ub.edu
Vie Mar 4 12:00:56 CET 2011


Hola Carlos!

¡Gracias mil!

Me consuela ver que esto parece ser un problema conocido, y con solución 
temporal también conocida por los expertos para evitar el problema.

Pasito a pasito aprendiendo a sacar más  partido a R...

Xavi

On 03/03/11 12:30, Carlos J. Gil Bellosta wrote:
> Hola, ¿qué tal?
>
> Es típico que al procesar secuencialmente ficheros, el rendimiento de
> R vaya degradándose por problemas de fragmentación de memoria. El
> "garbage collector" de R no es particularmente fino y viene bien
> ayudarle manualmente a realizar su labor.
>
> ¿Cómo? Cuando hayas acabado de utilizar objetos que tienes en memoria
> (por ejemplo, una tabla que cargas de un fichero, etc.), sobre todo
> los grandes, bórralos explícitamente con rm() y llama al "garbage
> collector" ( gc() ) inmediatamente. Cuanto más tardes a borrar y
> liberar espacio, mayor será la probabilidad de que no puedas restaurar
> la memoria a un estado lo más parecido posible al original.
>
> Un saludo,
>
> Carlos J. Gil Bellosta
> http://www.datanalytics.com
>
>
> El día 3 de marzo de 2011 11:36, Xavier de Pedro
> <xavier.depedro en ub.edu>  escribió:
>> Gracias Carlos!
>>
>> Lo del close() ya lo tenía presente y todos los archivos que abro los
>> cierro luego con close (aunque me aseguraré que con los cambios que hice
>> en las últimas semanas no me quedasé algun cabo suelto en este campo).
>>
>> Lo del Rprofmem() no tenía ni idea, así que ya sé por donde seguir
>> tirando del hilo... :-)
>>
>> Saludos y gracias de nuevo.
>>
>> Xavi
>>
>>
>> On 02/03/11 12:37, Carlos Ortega wrote:
>>> Hola,
>>>
>>> Para trazar el consumo de memoria puedes utilizar la función
>>> "Rprofmem()" de la librería "utils".
>>>
>>> También miraría si en el proceso batch de los múltiples ficheros que
>>> consultas, se cierras o no las conexiones una vez hecha la consulta.
>>> Mira para esto "close()".
>>>
>>> Saludos,
>>> Carlos Ortega
>>> www.qualityexcellence.es<http://www.qualityexcellence.es>
>>>
>>> 2011/3/2 Xavier de Pedro<xavier.depedro en ub.edu
>>> <mailto:xavier.depedro en ub.edu>>
>>>
>>>      Hola:
>>>
>>>      Por lo visto tengo un problema de gestión de la memoria en R con
>>>      un programa que trabaja con archivos por lotes (no sé si se dice
>>>      así en castellano, en "batch" mode) para elaborar unos informes, etc.
>>>
>>>      En el conjunto de datos de un año concreto, tengo 197 archivos xml
>>>      que procesar, de entre 50 y 200Kb la mayoría, con un total de 28
>>>      Mb en total. Trabajo con Eclipse como IDE (lo digo por si influye
>>>      que la consola de R se ejecute desde allí a través de rJava, creo
>>>      entender), y el ordenador tiene 2Gb de RAM.
>>>
>>>      Pues la cuestión es que des de hace unas semanas se me cuelga la
>>>      sesión de R antes de llegar al final del procesado de archivos
>>>      (hoy en el archivo número 180)
>>>
>>>      El mensaje de la consola es algo así como:
>>>
>>>      -------------------------------------------
>>>      Error in system(paste("rm ", myfilename, sep = ""), TRUE) :
>>>      cannot popen 'rm files_out/2010/report_on_file_list.txt', probable
>>>      reason 'No s’ha pogut reservar memòria'
>>>      -------------------------------------------
>>>
>>>      'No s’ha pogut reservar memòria' = No se ha podido reservar memoria
>>>
>>>      Y lo más curioso, es que si salgo de la sesión de R y Eclipse, y
>>>      vuelvo a entrar, normalmente puedo ejecutar todo el procesado por
>>>      lotes hasta el final sin problemas.
>>>
>>>      Así que me huelo que hay algun problema de gestión de memòria o en
>>>      R o en Eclipse (y/o en mi script, claro).
>>>
>>>      ¿En lo que hace referencia a R (para ir descartando cosas, e ir
>>>      aprendiendo a monitorear mejor el uso de su memoria por parte de
>>>      mis scripts), hay alguna manera fácil de verla y moniteorarla?
>>>
>>>      Gracias de antemano por las pistas que me podáis dar para
>>>      investigar más sobre el tema.
>>>
>>>      Xavi
>>>
>>>      _______________________________________________
>>>      R-help-es mailing list
>>>      R-help-es en r-project.org<mailto:R-help-es en r-project.org>
>>>      https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>
>>>
>>         [[alternative HTML version deleted]]
>>
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>>



Más información sobre la lista de distribución R-help-es