¿Son constantes las relaciones entre espacios / generaciones en el montón de Java?
he leídoEste artículo acerca de la optimización de la recolección de basura de la máquina virtual para comprender mejor el recolector de basura Java. Cada espacio tiene unaVirtual área de espacio de almacenamiento en la que puede crecer a medida que el espacio de almacenamiento necesario se acerca al tamaño máximo de almacenamiento. Esto se puede ver en esta imagen:Organización de generaciones de Java GC http://www.oracle.com/ocom/groups/public/@otn/documents/digitalasset/190244.gif
Puede establecer la relación entreGeneración joven yVieja generación (tenencia) con elNuevoRatio parámetro, y la relación entreEspacio edén yEspacio de sobreviviente con elSobrevivienteRatio parámetro.
Recientementeesta pregunta se le preguntó acerca de cómo averiguar las razones predeterminadas para los espacios de almacenamiento dinámico. Dice que debes usar elPrintGCDetails Parámetro y calcular las relaciones manualmente.
Mi pregunta es: ¿El tamaño de los diferentes espacios de almacenamiento dinámico aumenta en la misma proporción, manteniendo así la proporción establecida entre ellos al inicio constante durante todo el tiempo de ejecución de la aplicación? Por ejemplo, si Young Generation y Old / Tenured Generation tienen una NewRatio predeterminada de 3, y el espacio de almacenamiento inicial reservado es de 100 MB para Young y de 300 MB para Old. Si se necesita reservar más memoria para el espacio antiguo, digamos 300 MB más, lo que hace que sea de 600 MB en total. ¿La memoria reservada para Young Space también se duplica a 200 MB manteniendo la proporción intacta?