Zum Beispiel Einstellung -xx: newratio = 3 bedeutet, dass das Verhältnis zwischen der jungen und der alten Generation ist 1: 3. Mit anderen Worten, die kombinierte Größe der Eden- und Survivor-Räume ist ein Viertel der Gesamthaufengröße. Das Gleiche wurde hier gesagt: Was bedeutet der -xx: Newratio und -xx: OldSize JVM -Flags? Java 17 mit Java -xx: maxheapsize = 100m -xx:+printflagsfinal -version Ich sehe, dass MaxNewSize (junger Gen) 2/3 des Maxheapsize erhält, das größer ist als alte Gen, das die ist, die Gegenteil von dem, was die Dokumente sagen: < /p>
Code: Select all
java -XX:MaxHeapSize=100M -XX:+PrintFlagsFinal -version | grep -E "MaxHeapSize|MaxNewSize|NewRatio"
size_t MaxHeapSize = 104857600 {product} {command line}
size_t MaxNewSize = 62914560 {product} {ergonomic}
uintx NewRatio = 2 {product} {default}
size_t SoftMaxHeapSize = 104857600 {manageable} {ergonomic}
openjdk version "17.0.2" 2022-01-18
OpenJDK Runtime Environment (build 17.0.2+8-86)
OpenJDK 64-Bit Server VM (build 17.0.2+8-86, mixed mode, sharing)
< /code>
Dann führe ich denselben Befehl mit Java 8 aus und erhalte Werte mit den Dokumenten und allgemeinem Wissen, die ich im Internet immer wieder sehe: < /p>
java -Xmx100M -XX:+PrintFlagsFinal -version | grep -E "MaxHeapSize|MaxNewSize|NewRatio"
uintx MaxHeapSize := 109051904 {product}
uintx MaxNewSize := 36175872 {product}
uintx NewRatio = 2 {product}
openjdk version "1.8.0_392"
OpenJDK Runtime Environment Corretto-8.392.08.1 (build 1.8.0_392-b08)
OpenJDK 64-Bit Server VM Corretto-8.392.08.1 (build 25.392-b08, mixed mode)
Meine Frage: Was passiert? Ist es ein Fehler oder hat sich etwas geändert, das sich jedoch nicht in den Dokumenten widerspiegelt? Wird jede Anleitung für die richtige Richtung zu schätzen. Wie in Java 8: < /p>
Code: Select all
java -XX:MaxHeapSize=100M -XX:NewRatio=2 -XX:+PrintFlagsFinal -version | grep -E "MaxHeapSize|MaxNewSize|NewRatio"
size_t MaxHeapSize = 104857600 {product} {command line}
size_t MaxNewSize = 34603008 {product} {ergonomic}
uintx NewRatio = 2 {product} {command line}
size_t SoftMaxHeapSize = 104857600 {manageable} {ergonomic}
openjdk version "17.0.2" 2022-01-18
OpenJDK Runtime Environment (build 17.0.2+8-86)
OpenJDK 64-Bit Server VM (build 17.0.2+8-86, mixed mode, sharing)