Uso memoria virtual

30/06/2008 - 11:06 por Paco | Informe spam
Hola a todos.

Tengo un aplicativo desarrollado en c# y .NET Framework 2.0 y tengo un
problema con la memoria virtual utilizada por el mismo. El aplicativo está
permanentemente utilizándose, quiero decir que está en ejecución pero no
necesariamente se está trabajando con él.
El uso de memoria virtual no para de crecer en cuanto se utiliza alguna
función del sistema.
Alguien sabe si hay alguna forma de liberar la memoria virtual utilizada por
un .exe?
 

Leer las respuestas

#1 Alejandro Mezcua
30/06/2008 - 13:12 | Informe spam
.NET usa un recolector de basura para eliminar los objetos que se han dejado
de usar, liberando el espacio que ocupaban.
Como regla general, no hay que forzar a que el recolector de basura haga
recolecciones, sino que suele ser mejor dejar que trabaje por su cuenta. El
sistema de recolección de basura determina cuándo hacer la recolección en
base a un montón de parámetros que tienen que ver con el tipo de máquina en
la que corre la aplicación así como el estado en que esté en cada momento.

Ahora bien, dependiendo de lo que haga tu aplicación puede darse el caso de
que tu código no esté liberando objetos que quizá se pudiesen liberar, con
lo que antes de intentar forzar al recolector que haga una recolección, te
recomendaría que mirases si en tu código pudieses tener algún tipo de fuga
de memoria de la que no fueses consciente.

Con .NET tienes herramientas que te permiten monitorizar el estado de la
memoria de las aplicaciones. Echa un ojo al CLRProfiler por ejemplo
(http://msdn.microsoft.com/en-us/lib...79205.aspx) para ver si no
estuvieses liberando memoria correctamente.

Un saludo,

Alejandro Mezcua
MVP Device Application Development
http://www.byteabyte.net/

"Paco" wrote in message
news:
Hola a todos.

Tengo un aplicativo desarrollado en c# y .NET Framework 2.0 y tengo un
problema con la memoria virtual utilizada por el mismo. El aplicativo está
permanentemente utilizándose, quiero decir que está en ejecución pero no
necesariamente se está trabajando con él.
El uso de memoria virtual no para de crecer en cuanto se utiliza alguna
función del sistema.
Alguien sabe si hay alguna forma de liberar la memoria virtual utilizada
por
un .exe?

Preguntas similares