liberar memoria

30/08/2004 - 19:54 por Correo Visanfer, S.A. | Informe spam
Tengo una consulta bastante grande que devuelvo en un dataset, observando el
estado del equipo veo que el uso de la memoria sube bastante.
Una vez terminado el proceso hago un dataset.dispose, pero vuelvo a mirar y
el consumo de memoria no baja.
El unico momento en el que baja es cuando cierro la aplicacion.

Preguntas similare

Leer las respuestas

#1 Jose Marcenaro
30/08/2004 - 23:01 | Informe spam
Lo que ocurre es que el dispose del DataSet no libera su memoria, (esto
ocurre sólo cuando el runtime ejecuta el proceso de "Garbage Collection" o
GC)

Si bien puedes invocar manualmente a ese proceso (GC.Collect) cuando sabes
que has terminado una etapa importante del procesamiento, en general se
aconseja dejar al GC actuar cuando internamente lo considera adecuado (por
ejemplo al requerir más memoria, o periodicamente cada X tiempo).

Saludos
Jose Marcenaro


"Correo Visanfer, S.A." escribió en el mensaje
news:
Tengo una consulta bastante grande que devuelvo en un dataset, observando


el
estado del equipo veo que el uso de la memoria sube bastante.
Una vez terminado el proceso hago un dataset.dispose, pero vuelvo a mirar


y
el consumo de memoria no baja.
El unico momento en el que baja es cuando cierro la aplicacion.


Respuesta Responder a este mensaje
#2 HH
30/08/2004 - 23:48 | Informe spam
Hola Jose.

Y como se haria esto para un WebForm ?

Se puede "jugar" con la memoria en aplicaciones WEB ?


Lo que ocurre es que el dispose del DataSet no libera su


memoria, (esto
ocurre sólo cuando el runtime ejecuta el proceso


de "Garbage Collection" o
GC)

Si bien puedes invocar manualmente a ese proceso


(GC.Collect) cuando sabes
que has terminado una etapa importante del procesamiento,


en general se
aconseja dejar al GC actuar cuando internamente lo


considera adecuado (por
ejemplo al requerir más memoria, o periodicamente cada X


tiempo).

Saludos
Jose Marcenaro


"Correo Visanfer, S.A." escribió en


el mensaje
news:
Tengo una consulta bastante grande que devuelvo en un




dataset, observando
el
estado del equipo veo que el uso de la memoria sube




bastante.
Una vez terminado el proceso hago un dataset.dispose,




pero vuelvo a mirar
y
el consumo de memoria no baja.
El unico momento en el que baja es cuando cierro la




aplicacion.






.

Respuesta Responder a este mensaje
#3 DJ_MIAO
31/08/2004 - 06:56 | Informe spam
Si de echo se supone que es de las cosas mas importantes
estar pendiente de eso.


Miao..

Hola Jose.

Y como se haria esto para un WebForm ?

Se puede "jugar" con la memoria en aplicaciones WEB ?


Lo que ocurre es que el dispose del DataSet no libera




su
memoria, (esto
ocurre sólo cuando el runtime ejecuta el proceso


de "Garbage Collection" o
GC)

Si bien puedes invocar manualmente a ese proceso


(GC.Collect) cuando sabes
que has terminado una etapa importante del




procesamiento,
en general se
aconseja dejar al GC actuar cuando internamente lo


considera adecuado (por
ejemplo al requerir más memoria, o periodicamente cada




X
tiempo).

Saludos
Jose Marcenaro


"Correo Visanfer, S.A." escribió




en
el mensaje
news:
Tengo una consulta bastante grande que devuelvo en un




dataset, observando
el
estado del equipo veo que el uso de la memoria sube




bastante.
Una vez terminado el proceso hago un dataset.dispose,




pero vuelvo a mirar
y
el consumo de memoria no baja.
El unico momento en el que baja es cuando cierro la




aplicacion.






.



.

Respuesta Responder a este mensaje
#4 Tristan
31/08/2004 - 12:27 | Informe spam
En efecto, no hay que fiarse del "aparente" consumo de
memoria. Tal y como te dice José, recuperar y compactar
la memoria es una operación costosa, que el GC no realiza
mientras no sea imprescindible. Si quieres comprobar el
uso "real", debes utilizar un equipo con menos memoria.

Puedes activar manualmente la recolección de memoria,
mediante GC.Collect, pero teniendo en cuenta lo anterior.
Probablemente pierdas prestaciones sin ganar
absolutamente nada.
Respuesta Responder a este mensaje
#5 Tristan
31/08/2004 - 12:34 | Informe spam
No hay diferencia entre webform y winforms en cuanto a la
ejecución de las aplicaciones.

Por la misma razón, es poco recomendable llamar
manualmente a GC.Collect en cualquiera de las dos. Es más
probale que el GC sepa mejor que nosotros en que momento
es conveniente recolectar la memoria. Depende de cosas
complejas, como memoria del equipo, carga de
aplicaciones, etc...
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida