Forzar el borrado de un objeto de memoria

31/10/2008 - 01:27 por Carlos | Informe spam
Se que puedo dejarselo al Garbage Collector pero existe alguna forma de
forzar anticipadamente el borrado de un objeto de la memoria, por ejemplo un
DataSet ?

Preguntas similare

Leer las respuestas

#6 Pedro
01/11/2008 - 00:12 | Informe spam
También:

http://msmvps.com/blogs/pmackay/arc...acion.aspx



"Carlos" <carl> escribió en el mensaje
news:uF$
Gracias. Aunque lo bueno claro seria saber por qué se desaconseja tanto
hacer esto. Si no se recomienda a ese extremo, entonces no debería
existir pues el GC.Collect o debería advertirlo en la ayuda por lo menos.
De todos modos es para un caso especial de unas pruebas por un problema de
consumo de memoria en exceso que esta dando una aplicacion y estamos
tratando de evaluar todas las posibles causas para ir descartando. No es
para uso constante, es de suponerse.


"Alberto Poblacion"
escribió en el mensaje news:
"Carlos" <carl> wrote in message
news:
Se que puedo dejarselo al Garbage Collector pero existe alguna forma de
forzar anticipadamente el borrado de un objeto de la memoria, por
ejemplo un DataSet ?



El método normal sería el de eliminar todas las referencias al objeto
en cuestión, con lo que a partir de ese momento el Garbage Collector
puede eliminarlo cuando le venga bien. Si no te vale lo de "cuando le
venga bien", y por alguna extraña razón quieres que ocurra de inmediato,
puedes llamar a GC.Collect(); con lo que fuerzas al Garbage Collector a
que recoja de inmediato la memoria que ha sido liberada. Se desaconseja
hacer esto, salvo que tengas una buena razón para ello.





Respuesta Responder a este mensaje
#7 Jose TH
03/11/2008 - 14:55 | Informe spam
Puede ser que en algun caso sea necesario pero en mi experiencia te puedo
decir que con solo ponerle null a una variable el GC se encarga de borrarlo
cuando considere, pero esto solo hay que hacerlo cuando no vayas a usar mas
un objeto que siga visible porque si es una variable local tampoco hay que
hacerlo ya que se auto elimina la referencia al salir del metodo. En otras
palabras, en una aplicacion normal hecha con buenas normas, eso casi se
puede ignorar. A mi no me ha dado ningun problema, deberias buscar las
causas del consumo en otras razones.

Jose TH


"Carlos" <carl> wrote in message
news:uF$
Gracias. Aunque lo bueno claro seria saber por qué se desaconseja tanto
hacer esto. Si no se recomienda a ese extremo, entonces no debería
existir pues el GC.Collect o debería advertirlo en la ayuda por lo menos.
De todos modos es para un caso especial de unas pruebas por un problema de
consumo de memoria en exceso que esta dando una aplicacion y estamos
tratando de evaluar todas las posibles causas para ir descartando. No es
para uso constante, es de suponerse.


"Alberto Poblacion"
escribió en el mensaje news:
"Carlos" <carl> wrote in message
news:
Se que puedo dejarselo al Garbage Collector pero existe alguna forma de
forzar anticipadamente el borrado de un objeto de la memoria, por
ejemplo un DataSet ?



El método normal sería el de eliminar todas las referencias al objeto
en cuestión, con lo que a partir de ese momento el Garbage Collector
puede eliminarlo cuando le venga bien. Si no te vale lo de "cuando le
venga bien", y por alguna extraña razón quieres que ocurra de inmediato,
puedes llamar a GC.Collect(); con lo que fuerzas al Garbage Collector a
que recoja de inmediato la memoria que ha sido liberada. Se desaconseja
hacer esto, salvo que tengas una buena razón para ello.





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida