Sind die Verhältnisse zwischen Leerzeichen / Generationen im Java-Heap konstant?

ich habe gelesenDieser Beitrag Informationen zur Optimierung der Garbage Collection von virtuellen Maschinen, um den Java-Garbage-Collector besser zu verstehen. Jeder Raum hat eineVirtuell Heap-Space-Bereich, in den es hineinwachsen kann, wenn sich der benötigte Heap-Space der maximalen Heap-Größe nähert. Dies ist auf diesem Bild zu sehen:Java GC-Anordnung der Generationen http://www.oracle.com/ocom/groups/public/@otn/documents/digitalasset/190244.gif

Sie können das Verhältnis zwischen einstellenJunge Generation undAlte (feste) Generation mit demNewRatio Parameter und das Verhältnis zwischenEden Space undSurvivor Space mit demSurvivorRatio Parameter.

Vor kurzemdiese Frage wurde gefragt, ob die Standardverhältnisse für die Heapspaces ermittelt werden sollen. Es heißt, du solltest das benutzenPrintGCDetails Parameter und berechnen Sie die Verhältnisse manuell.

Meine Frage lautet: Erhöht sich die Größe der verschiedenen Heap-Speicherbereiche um das gleiche Verhältnis, sodass das beim Start festgelegte Verhältnis während der gesamten Laufzeit der Anwendung konstant bleibt? Wenn beispielsweise Young Generation und Old / Tenured Generation ein Standard-NewRatio von 3 haben und der ursprünglich reservierte Heap-Speicherplatz 100 MB für Young und 300 MB für Old beträgt. Wenn mehr Speicher für den alten Speicherplatz reserviert werden muss, sagen wir 300 MB mehr, sodass insgesamt 600 MB verfügbar sind. Verdoppelt sich auch der für Young Space reservierte Speicher auf 200 MB, sodass das Verhältnis erhalten bleibt?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage