Recientemente hemos actualizado una de nuestras aplicaciones de Java 1.4 a Java 6.¿Cambios en la recolección de basura de Java 1.4 a Java 6?
Con algunas pruebas de rendimiento de carga &, se observó que la memoria disponible se mantuvo, en general, en niveles mucho más bajos en Java 6 que en lo que solía ser con Java 1.4.
Después de realizar algunos perfiles en la aplicación con Java 6, notamos que muchos objetos a los que ya no hace referencia ningún otro objeto (es decir, candidatos para la recolección de basura) permanecían en la memoria y aparentemente nunca se recolectaban. Tomamos eso como la explicación para la memoria disponible más baja.
La pregunta es: ¿se comportó la forma en que la recolección de basura se modificó de Java 1.4 a Java 6?
¿Estás seguro de que los objetos son candidatos genuinos para la recopilación? ¿Se recopilan si inicia una recopilación a través de JConsole? –
Java 7 está destinado a tener aún más 'optimizaciones' en el recolector de basura. – Steve