Problemas con la memoria
Publicado por Juan Pablo (17 intervenciones) el 17/05/2010 18:57:00
Hola: vengo colocando notas desde hace tiempo y no puedo encontrar la solucion, aunque he podido encontrar mucha informacion de ayuda que a alguien le pueda servir.
Mi problema es que el programa que hice no libera la memoria, es decir que comienza la ejecucion (es un programa que realiza la migracion de la BD) y comineza a leer datos y enviar consultas sql a un dervidor de bd.
Estuve investigando y vi como funciona el garbage collector, entiendo que no es bueno forzar su ejecucion y que cuando el sistema no tiene lugar, ejecuta el GC para que libere memoria.
El problema es que las variables declaradas en las funciones que utilizo, no liberan memoria, y por ende el uso de la memoria crece y crece.
Algo muy raro es que en el administrador de tareas no se ve reflejado que el programa tenga asignada toda esa memoria (esta en los 60 MB) pero el mismo administrador de tareas me muestra en la parte grafica de historial de "uso de PF" el incremento de la memoria.
Alguien puede decirme como ASEGURARME de liberar TODA la memoria asignada durante una funcion al cerrar la misma???
Aqui les dejo un link a una pagina que me fue de mucha ayuda para entender el GC.
http://diegumzone.spaces.live.com/blog/cns!1AD5096D63670065!1401.entry
Saludos
Juan
Mi problema es que el programa que hice no libera la memoria, es decir que comienza la ejecucion (es un programa que realiza la migracion de la BD) y comineza a leer datos y enviar consultas sql a un dervidor de bd.
Estuve investigando y vi como funciona el garbage collector, entiendo que no es bueno forzar su ejecucion y que cuando el sistema no tiene lugar, ejecuta el GC para que libere memoria.
El problema es que las variables declaradas en las funciones que utilizo, no liberan memoria, y por ende el uso de la memoria crece y crece.
Algo muy raro es que en el administrador de tareas no se ve reflejado que el programa tenga asignada toda esa memoria (esta en los 60 MB) pero el mismo administrador de tareas me muestra en la parte grafica de historial de "uso de PF" el incremento de la memoria.
Alguien puede decirme como ASEGURARME de liberar TODA la memoria asignada durante una funcion al cerrar la misma???
Aqui les dejo un link a una pagina que me fue de mucha ayuda para entender el GC.
http://diegumzone.spaces.live.com/blog/cns!1AD5096D63670065!1401.entry
Saludos
Juan
Valora esta pregunta
0