Crecimiento Exponencial de Memoria

03/06/2005 - 12:48 por Fco. Javier Montesinos | Informe spam
Buenos días

Hemos desarrollado una aplicación con WindowsForms que utiliza el MVC
expuesto en los vídeos de Desarrolla con MSDN (www.desarrollaconmsdn.com).

La aplicación consta de un único formulario principal que va conteniendo a
los controles de usuario que forman cada proceso. El problema que se nos
plantea es que la memoria de la aplicación comienza a crecer de forma
exponencial simplemente con cargar y eliminar controles del formulario.
Hemos probado incluso a forzar la liberación de memoria mediante:
GC.Collect() y de alguna otra forma también consiguiendo únicamente
disminuir el incremento, pero sigue cargándose con el tiempo y acaba
quedando bloqueada.

Gracias por adelantado a cualquiera que nos pueda dar una idea de por donde
seguir o a quien nos pudiera dar la solución.


Un saludo a todos.

Fco. Javier Montesinos Morcillo.

Preguntas similare

Leer las respuestas

#1 Alfredo Novoa
03/06/2005 - 12:59 | Informe spam
On Fri, 3 Jun 2005 12:48:18 +0200, "Fco. Javier Montesinos"
wrote:

La aplicación consta de un único formulario principal que va conteniendo a
los controles de usuario que forman cada proceso. El problema que se nos
plantea es que la memoria de la aplicación comienza a crecer de forma
exponencial simplemente con cargar y eliminar controles del formulario.



¿Estais seguros de que liberais todos los recursos no gestionados por
el recolector de basura (unmanaged resources)?

Échale un vistazo a esto:

http://msdn.microsoft.com/library/d...stopic.asp


Saludos
Respuesta Responder a este mensaje
#2 Tristan
03/06/2005 - 13:23 | Informe spam
La aplicación consta de un único formulario principal que va conteniendo a
los controles de usuario que forman cada proceso. El problema que se nos
plantea es que la memoria de la aplicación comienza a crecer de forma
exponencial simplemente con cargar y eliminar controles del formulario.



Esta es una pregunta recurrente en estos foros.

En principio, sin saber nada más de tu aplicación, te puedo decir que ese es
el comportamiento normal de .net. En realidad esa ocupación de memoria no es
real. Observarás que al minimizar (y/o restaurar) tu aplicación, el consumo
de memoria se reduce de forma drástica, ¿No es así?.

La liberación de recursos es un proceso caro, y no se realiza
innecesariamente. El framework está optimizado para no libera la memoria
ocupada, innecesariamente. Solo cuando otras aplicaciones la necesiten, o
cuando tu equipo no tenga suficiente memoria, esta será liberada y verás el
auténtico consumo real. También, como te digo, cuando minimices la aplicación.

Ahora bien, si cuando minimizas la aplicación, no observas una disminución
importante del consumo de memoria, entonces tienes un problema en tu
aplicación. Posiblemente no liberes los recursos IDisposable, o desperdies
recursos por algún otro lado.

Juan Carlos Badiola Saiz
MVP - C#
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida