[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