C sharp - Manejo de Generaciones

 
Vista:

Manejo de Generaciones

Publicado por Carlos E. (1 intervención) el 20/08/2003 20:54:17
Hola a todos.

¿Alguine sabe como aumentar el número de generaciones que el framework puede soportar? Lo que pasa es que con solo 3 generaciones, el garbage collector me borra objetos que no debiera aun.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

RE:Manejo de Generaciones

Publicado por Yamil Bracho (1164 intervenciones) el 21/08/2003 20:28:19
No entiendo muy bien la pregunta pero el GC libera memoria cuando los objetos salen de ambito o cuando explicaitamente llamas al Dispose() (Esto solo lo marca como "garbage" y en la siguiente pasada del GC es eliminado)
Si necesitas que un objeto no sea eliminado en un metodo deberias colocarlo como variable de instancia y asi tiene vida hasta que el objeto padre sea liberado...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Manejo de Generaciones

Publicado por Carlos Estrada (1 intervención) el 22/08/2003 18:37:06
Gracias Yamil por tu respuesta, pero la pregunta es por lo siguiente.
El garbage collector, efectivamente hace lo que dices, y lo entiendo, pero como la aplicación en si es con fin didactico, la hice de tal forma que los objetos pierdan la referencia bajo ciertas condiciones. Estoy invocandolo con Dispose(), claro esta, pero tu sabes que este se lleva todos los objetos marcados con una pequeña perdida de desempeño. El garbage collector puede manejarse para que se lleve a los objetos mas jovenes y se tardaría menos en hacer sus recolecciones (Dispose(0) o Dispose(1) hasta Dispose(2)). Solo 3 generaciones por default. He leido que puede configurarse para mas de 3 generaciones, pero no he encontrado donde se configura esto.

Gracias Yamil., si puedieras orientarme un poco, te lo agradecería.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

RE:Manejo de Generaciones

Publicado por Yamil Bracho (1164 intervenciones) el 22/08/2003 21:30:47
Uf..! Realmente si que es algo bien especifico...
Bueno de lo poco que he leido, puedes obtener la generacion a la cual pertenece un objeto y usando el metodo Collect puedes forzar a llamara al GC. Este metodo tiene una sobrecarga que recibe como parametro un entero que te indica la generacion que quieres marcar para el GC.

Lo otro que te puede servir es usar la propiedad keepAlive que marca un objeto como no elegible para el GC y asi mantenerlo vivo mas tiempo..

Tambien hay una propiedad de GC llamada MaxGeneration la cual te retorna el numerod e generaciones que soporta tu sistema, sin embargo la documentacion dice que este numero es ajustado a medida que se liberan y crean objetos...

No se si te sirve de algo esto, pero es lo que se hasta el momento...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar