Hat sich die Semantik von Newratio in JVM trotz der Oracle -Dokumente verändert?Java

Java-Forum
Anonymous
 Hat sich die Semantik von Newratio in JVM trotz der Oracle -Dokumente verändert?

Post by Anonymous »

Die Oracle -Dokumente sagen (Hervorhebung Mine): < /p>

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)
Trotz maxheapsize = 100m und Standard NewRatio = 2 in beiden Fällen ist MaxNewSize 62914560 in Java 17 und 36175872 in Java 8. < /p>
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)
Ist dies ein Fehler oder etwas mit Ergonomie, das die Werte betrifft?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post