| Parametername | Bedeutung | Defaults/Notes |
| -Xms | Anfangs-Heap-Größe | 1/64 (<1 GB) physischer Speicher Standardmäßig (MinHeapFreeRatio-Parameter kann angepasst werden) Wenn der freie Heap-Speicher unter 40 % liegt, erhöht das JVM den Heap bis zum maximalen Limit von -Xmx |
| -Xmx | Maximale Heap-Größe | Ein Viertel des physischen Speichers (<1 GB) Standardwert (MaxHeapFreeRatio-Parameter kann angepasst werden). Wenn der freie Heap-Speicher größer als 70 % ist, reduziert das JVM den Heap bis zum Minimum von -xms |
| -Xmn | Generationsgröße (JDK 1.4 oder höher) | Nach der Erhöhung der neuen Generation wird die Größe der alten Generation verringert. Dieser Wert hat einen erheblichen Einfluss auf die Systemleistung. Sun empfiehlt offiziell die Konfiguration auf 3/8 des gesamten Stacks |
| -Xss | Die Stapelgröße jedes Threads | Nach JDK5.0 betrug jede Thread-Stack-Größe 1M, und zuvor jede Thread-Stack-Größe 256K, was in K-, M- oder G-Einheiten bestehen kann |
| -XX:ThreadStackSize | Ebd. | 0 bedeutet, dass der Standardwert verwendet wird und er nicht vereint werden kann |
| -XX:PermSize | Setze den Anfangswert der permanenten Algebra | 1/64 des physischen Speichers |
| -XX:MaxPermSize | Setze das Maximum der permanenten Erzeugung | Ein Viertel des physischen Speichers |
| -XX:NewRatio | Verhältnis von Känozoikum (einschließlich Eden und zwei Überlebenszonen) zum Alter (ohne permanente Generation) | -XX:NewRatio=4 bedeutet, dass das Verhältnis des Känozoikums zum Alters 1:4 ist, und das Känozoikum macht ein Fünftel des gesamten Stapels aus, Xms=Xmx und Xmn ist gesetzt, dieser Parameter muss nicht gesetzt werden. |
| -XX:ÜberlebendenRatio | Das Größenverhältnis des Eden-Gebiets zum Überlebenden-Gebiet | Wenn auf 8 gesetzt, beträgt das Verhältnis von zwei Überlebensregionen zu einer Eden-Region 2:8, und eine Überlebensregion macht 1/10 des gesamten Känozoikums aus |
| -XX:GroßseiteGrößeInBytes | Die Größe der Speicherseite sollte nicht zu groß eingestellt werden, da dies die Größe der Perm beeinflusst | =128 m |
| -XX:+UseFastAccessorMethods | Schnelle Optimierung des ursprünglichen Typs | / |
| -XX:+DisableExplicitGC | System.gc(schließen) | Dieser Parameter erfordert rigorose Tests |
| -XX:MaxTenuringSchwelle | Maximales Alter des Mülls | Wird es auf 0 gesetzt, tritt das neue Generationsobjekt direkt in die alte Ära ein, ohne den Überlebensbereich zu durchqueren. Für ältere Anwendungen kann die Effizienz verbessert werden. Wenn dieser Wert auf einen großen Wert gesetzt wird, wird das Objekt der neuen Generation im Überlebendenbereich mehrfach kopiert, was die Überlebenszeit des Objekts in der neuen Generation verlängern und die Wahrscheinlichkeit erhöht, in der neuen Generation recycelt zu werden, was nur für serielle GC gilt |
| -XX:+AggressiveOpts | Beschleunigte Kompilierung | / |
| -XX:+UseBiasedLocking | Leistungsverbesserungen für Verriegelungsmechanismen | / |
| -Xnoclassgc | Müllrecycling deaktivieren | / |
| -XX:SoftRefLRUPolicyMSPerMB | Die Überlebenszeit von SoftReference pro Megastapel freien Speichers | 1s |
| -XX:PretenureSizeThreshold | Die Größe des Objekts verteilt sich direkt im Alter | Ein weiterer Fall, in dem die neue Generation Parallel Scavenge GC verwendet, ist ungültig, und ein weiterer Fall, in dem es im Alter direkt zugewiesen wird, ist ein großes Array-Objekt ohne externe Referenzobjekte im Array. |
| -XX:TLABWasteTargetPercent | Prozentsatz von TLAB im Eden-Gebiet | 1% |
| -XX:+CollectGen0First | Ob YGC bei FullGC an erster Stelle steht | false |
| -XX:+UseParallelGC | Full GC verwendet paralleles MSC | Siehe [GC-Parameter][1] |
| -XX:+UseParNewGC | Die neue Generation zur parallelen Sammlung einsetzen | Es kann zusammen mit CMS-Sammlung verwendet werden, JDK 5.0 oder neuer, und das JVM legt es entsprechend der Systemkonfiguration ein, sodass es nicht nötig ist, diesen Wert erneut zu setzen |
| -XX:ParallelGCThreads | Die Anzahl der Threads für den Parallelkollektor | Dieser Wert ist am besten entsprechend der Anzahl der Prozessoren konfiguriert und auch für CMS geeignet |
| -XX:+UseParallelOldGC | Die alte Methode der Garbage Collection ist Parallel Compacting | Dies ist die Parameteroption, die in JAVA 6 erscheint |
| -XX:MaxGCPauseMillis | Maximale Abfallentsammelzeit pro neuer Generation (maximale Pausenzeit) | Wenn diese Zeit nicht eingehalten werden kann, wird die JVM die neue Generation automatisch anpassen, um diesen Wert zu erfüllen. |
| -XX:+UseAdaptiveSizePolicy | Wählen Sie automatisch die Größe des neuen Generationsbereichs und das entsprechende Verhältnis des Überlebendenbereichs aus. | Wenn diese Option gesetzt ist, wählt der Parallelkollektor automatisch die Größe des neuen Erzeugungsbereichs und den entsprechenden Anteil der Überlebendenfläche aus, um die vom Zielsystem festgelegte minimale Zeit oder Sammelfrequenz zu erreichen |
| -XX:GCTimeRatio | Setze die Müllabholungszeit als Prozentsatz der Laufzeit des Programms | Die Formel ist 1/(1+n) |
| -XX:+ScavengeBeforeFullGC | Vollständiges GC, bevor du YGC anrufst | true |
| -XX:+UseConcMarkSweepGC | Verwenden Sie die CMS-Speichersammlung | Nach der Konfiguration dieses im Test ist die Konfiguration von -XX:NewRatio=4 ungültig, und der Grund ist unbekannt, daher ist es am besten, derzeit die Größe der neuen Generation mit -Xmn festzulegen |
| -XX:+Aggressiver Heap | Der Versuch besteht darin, viel physischen Speicher zu verwenden | Eine Optimierung des langfristigen großen Speicherverbrauchs, um Rechenressourcen (Speicher, Anzahl der Prozessoren, mindestens 256 MB Speicher) zu überprüfen, ist erforderlich |
| -XX:CMSFullGCsBeforeCompaction | Wie oft tritt Speicherkompression auf? | Da der Concurrent Collector den Speicherraum nicht komprimiert und organisiert, erzeugt er nach einer gewissen Zeit eine "Fragmentierung", was die Betriebseffizienz verringert |
| -XX:+CMSParallelAnmerkungAktiviert | Untere Markierung pausiert | / |
| -XX+UseCMSCompactAtFullCollection | Kompression des Alters, als es FullGC war, | CMS bewegt keinen Speicher, daher ist es sehr einfach, Fragmentierung zu erzeugen, was zu unzureichendem Speicher führt, weshalb die Speicherkompression zu diesem Zeitpunkt aktiviert wird. Es ist eine gute Gewohnheit, diesen Parameter zu erhöhen. Es kann die Leistung beeinträchtigen, aber es kann Schmutz beseitigen |
| -XX:+UseCMSInitiatingOccupancyOnly | Starte die CMS-Sammlung mit manueller Definitionsinitialisierung | HostSpot ist es untersagt, CMS GC eigenständig auszulösen |
| -XX:CMSInitiatingOccupancyFraction=70 | Die CMS-Sammlung beginnt, nachdem 70 % des Mülls als Müllrecycling verwendet werden | Dieser Wert muss gesetzt werden, um die folgende Formel zu erfüllen, CMSInitiatingOccupancyFraction |
| -XX:CMSInitiatingPermOccupancyFraction | Stellen Sie die Perm-Gen-Nutzung so ein, dass sie ausgelöst wird, wenn das Verhältnis erreicht ist | 92 |
| -XX:+CMSIncrementalMode | Auf inkrementellen Modus eingestellt | Verwendung in Einzel-CPU-Gehäusen |
| -XX:+CMSClassUnloadingEnabled | Ständiger CMS-GC | / |
| -XX:+PrintGC | GC-Logausgabe | Dasselbe wie -verbose:gc |
| -XX:+PrintGCDetails | Ebd. | Weitere Details |
| -XX:+PrintGCTimeStamps | Ausgabe-GC-Zeitstempel | Verwenden Sie sie mit dem oben genannten PrintGC-Parameter oder schreiben Sie etwas wie -XX:+PrintGC:PrintGCTimeStamps |
| -XX:+DruckGC:DruckGCTimeStempel | / | Kann mit -XX:+PrintGC -XX:+PrintGCDetails gemischt werden. |
| -XX:+DruckGCApplicationStoppedTime | Die Zeit, zu der das Programm während der Printmüllabfuhr pausiert. Kann mit dem oben genannten kombiniert werden | Ausgabeformat: Gesamtzeit, in der Anwendungsthreads gestoppt wurden: 0,0468229 Sekunden |
| -XX:+PrintGCApplicationConcurrentTime | Drucke die ununterbrochene Ausführungszeit des Programms vor jeder Garbage Collection | Kann mit dem oben genannten Ausgabeformular gemischt werden: Anwendungszeit: 0,5291524 Sekunden |
| -XX:+PrintHeapAtGC | Detaillierte Stapelinformationen vor und nach GC drucken | / |
| -Xloggc:Dateiname | Protokollieren Sie die relevanten Loginformationen in einer Datei zur Analyse | Arbeitet mit den oben genannten wenigen |
| -XX:+PrintClassHistogramm | Nachdem du Strg+Break in der Konsole gedrückt hast, drucke die Klasseninformationen aus | / |
| -XX:+DruckKlasseHistogrammVorVollGC | FullGC vor dem Druck | / |
| -XX:+PrintTLAB | Sehen Sie die Nutzung des TLAB-Raums an | / |
| XX:+PrintTenuringDistribution | Sehen Sie sich die Schwelle für die neue Überlebensdauer nach jedem kleinen GC an | / |
| -EA | Aktivieren Sie assert assert | / |
| -Xprof | Leistungsdiagnostik | / |
| -Xrunhprof | Leistungsdiagnostik | / |
| -XX:+TraceClassLoading | Druckt Informationen über den Klassenladeprozess | Ähnlich wie [Loaded java.util.AbstractList$Itr von /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/rt.jar] |
| -XX:+TraceClassUnloading | Informationen zum Deinstallationsprozess der Druckklasse | / |
| Xbootclasspath | Spezifiziert das Laden von Klassen, die keine Prüfungen erfordern | Das Überspringen der notwendigen Pre-Load-Kontrollen kann die Ladezeit verkürzen, ist aber nicht sicher |
| -XX:+DruckKompilation | Drucken Sie den Methodennamen, den Hotspot mit JIT kompiliert | / |
| -XX:+HeapDumpOnOutMemoryError | OM beim Erzeugen eines Heap-Dumps | Die Standardausgabe befindet sich im Root-Ordner, in dem die Klassendateien gespeichert sind |
| -XX:HeapDumpPath | Setzen Sie den Pfad der ausgegebenen OM-Dump-Datei ein | Verwendung mit -XX:+HeapDumpOnOutOfMemoryError |
| Parametername | Beschreibung | Vorgabe |
| -d32 | Verwenden Sie ein 32-Bit-Datenmodell (sofern verfügbar) | / |
| -d64 | Verwenden Sie ein 64-Bit-Datenmodell (falls verfügbar) | / |
| -Server | Wählen Sie die Server-VM aus | Die Standard-VM ist Server, weil du auf einer serverähnlichen Maschine spielst. |
| -cp < Verzeichnis- und ZIP/JAR-Dateiklassen-Suchpfad > | / | / |
| -classpath < der Klassensuchpfad für Verzeichnisse und zip-/jar-Dateien > | Verwenden Sie: eine Liste getrennter Verzeichnisse, JAR-Archive und ZIP-Archive, um nach Klassendateien zu suchen | / |
| -D<名称>=<值> | Eigenschaften des Mengensystems | / |
| -Ausführlich: [Klasse oder GC oder JNI] | Detaillierte Ausgaben aktivieren | / |
| -Version | Geben Sie die Produktversion aus und beenden Sie es | / |
| -<值>Version: | / | Veraltet |
| -Showversion | Geben Sie die Produktversion aus und fahren Sie fort | / |
| -jre-restrict-search oder -no-jre-restrict-search | / | Veraltet |
| -? -Hilfe | Geben Sie diese Hilfemeldung aus | / |
| -X | Ausgabehilfe mit nicht standardisierten Optionen | / |
| -EA[:< Paketname, Klassenname>] | behaupten | / |
| -enableassertions[:< Paketname, Klassenname>] | Aktiviere Behauptungen bei der angegebenen Granularität | / |
| -da[:< Paketname, Klassenname>] | / | / |
| -disableassertions[:< Paketname, Klassenname>] | Deaktiviere Behauptungen mit einer bestimmten Granularität | / |
| -esa- oder -enablesystemassertions | Systembehauptungen aktivieren | / |
| -dsa oder -disablesystemassertions | Systembehauptungen deaktivieren | / |
| -agentlib:<libname>[=<选项>] | Lade die native Agentenbibliothek <libname> | Zum Beispiel -agentlib:hprofSiehe auch -agentlib:jdwp=help und -agentlib:hprof=help |
| -agentpath:<pathname>[=<选项>] | Lade die lokale Agentenbibliothek über den vollständigen Pfadnamen | / |
| -javaagent:<jarpath>[=<选项>] | Um den Java-Programmiersprachagenten zu laden, siehe java.lang.instrument | / |
| -Platsch:<imagepath> | Zeigen Sie den Startbildschirm mit dem angegebenen Bild an | / |