Existe un programa para controlar la memoria

16/01/2007 - 18:25 por Diegoc | Informe spam
Buenas tardes,
me estoy volviendo loco con un programa que tengo que va cargando la
memoria y no consigo que vuelva a su situación incial. He ido
controlando todas las variables que veo, pero parece ser que alguna se
me escapa y me gustaría saber si existe algun programa que me diga lo
que se va cargando en la memoria... seguramente no exista pero alguien
me puede decir como hacerlo?
Gracias
 

Leer las respuestas

#1 Alberto Poblacion
16/01/2007 - 18:38 | Informe spam
"Diegoc" wrote in message
news:
me estoy volviendo loco con un programa que tengo que va cargando la
memoria y no consigo que vuelva a su situación incial.



Probablemente te has topado con el mecanismo de recogida de memoria de
.Net, que no funciona igual que el de otros lenguajes. En .Net, cuando un
objeto se "sale de alcance" ("goes out of scope") o cuando lo liberas
asignándole un null, no se recupera de forma inmediata la memoria que estaba
consumiendo. Símplemente permanece "consumida", hasta que se llega a un
punto en que toda la memoria está ocupada o se necesita para otros fines,
momento en el que arranca el Garbage Collector y recupera la memoria de esos
objetos que son inalcanzables, por haber sido destruidas todas las
referencias a los mismos. Mientras no se dispara este proceso de recogida,
el programa aparenta estar creciendo en memoria sin ninguna limitación.

Si quieres disparar a mano el proceso de recogida, puedes hacerlo con la
instrucción System.GC.Collect();. Microsoft recomienda utilizarlo solo para
pruebas, pero en los programas que estén en productivo, dejar que el
recogedor de basura se dispare automáticamente cuando el sistema lo
considere oprtuno, en lugar de lanzarlo a mano con esa instrucción.

Preguntas similares