Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 17284|Antwort: 1

[Quelle] JVM-Parameter Optionen

[Link kopieren]
Veröffentlicht am 31.8.2020, 22:20:25 | | |
Wir teilen die JVM-Parameter basierend auf den JVM-Parametern ab -X oder -XX in drei Teile ein:
1. Beginnend mit -, der Standard-VM-Option, der VM-Spezifikationsoption;
2. Diejenigen, die mit -X beginnen, sind nicht standardisiert (diese Parameter sind nicht garantiert auf allen JVMs implementiert), und wenn es Änderungen in der neuen Version gibt, wird keine Benachrichtigung ausgegeben.
3. Diejenigen, die mit -XX beginnen, sind instabil und werden für den Einsatz in Produktionsumgebungen nicht empfohlen. Änderungen an diesen Parametern werden ebenfalls nicht benachrichtigt. Bool-Parameteroptionen: -XX:+ an, -XX:- aus. (z. B. -XX:+PrintGCDetails) Die numerische Parameteroption wird durch -XX:= gesetzt. Zahlen können m/m (Megabyte), k/k (Kilobyte), g/g (g-Bytes) sein. Zum Beispiel: 32K bedeutet 32768 Bytes. (z. B. -XX:MaxPermSize=64m) Die Option String-Parameter wird durch -XX:= gesetzt, die üblicherweise verwendet wird, um eine Datei, einen Pfad oder eine Befehlsliste anzugeben. (z. B. -XX:HeapDumpPath=./java_pid.hprof) kann der Befehl java -help die Standardoptionen für den Start von Java-Anwendungen auflisten (siehe Anhang Standard VM Parameter Table, verschiedene JVM-Implementierungen sind unterschiedlich). java -X kann nicht-standardisierte Parameter auflisten (was eine Erweiterung des JVM ist). -X-bezogene Optionen sind nicht standardmäßig und werden nicht benachrichtigt, wenn sie geändert werden. Wenn Sie die derzeit von Ihrer Anwendung verwendeten JVM-Parameter sehen möchten, können Sie folgendes verwenden: ManagementFactory.getRuntimeMXBean().getInputArguments().

ParameternameBedeutungDefaults/Notes
-XmsAnfangs-Heap-Größe1/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
-XmxMaximale Heap-GrößeEin 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
-XmnGenerationsgröß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
-XssDie Stapelgröße jedes ThreadsNach 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:ThreadStackSizeEbd.0 bedeutet, dass der Standardwert verwendet wird und er nicht vereint werden kann
-XX:PermSizeSetze den Anfangswert der permanenten Algebra1/64 des physischen Speichers
-XX:MaxPermSizeSetze das Maximum der permanenten ErzeugungEin Viertel des physischen Speichers
-XX:NewRatioVerhä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:ÜberlebendenRatioDas Größenverhältnis des Eden-Gebiets zum Überlebenden-GebietWenn 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ößeInBytesDie Größe der Speicherseite sollte nicht zu groß eingestellt werden, da dies die Größe der Perm beeinflusst=128 m
-XX:+UseFastAccessorMethodsSchnelle Optimierung des ursprünglichen Typs
-XX:+DisableExplicitGCSystem.gc(schließen)Dieser Parameter erfordert rigorose Tests
-XX:MaxTenuringSchwelleMaximales Alter des MüllsWird 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:+AggressiveOptsBeschleunigte Kompilierung
-XX:+UseBiasedLockingLeistungsverbesserungen für Verriegelungsmechanismen
-XnoclassgcMüllrecycling deaktivieren
-XX:SoftRefLRUPolicyMSPerMBDie Überlebenszeit von SoftReference pro Megastapel freien Speichers1s
-XX:PretenureSizeThresholdDie Größe des Objekts verteilt sich direkt im AlterEin 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:TLABWasteTargetPercentProzentsatz von TLAB im Eden-Gebiet1%
-XX:+CollectGen0FirstOb YGC bei FullGC an erster Stelle stehtfalse
-XX:+UseParallelGCFull GC verwendet paralleles MSCSiehe [GC-Parameter][1]
-XX:+UseParNewGCDie neue Generation zur parallelen Sammlung einsetzenEs 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:ParallelGCThreadsDie Anzahl der Threads für den ParallelkollektorDieser Wert ist am besten entsprechend der Anzahl der Prozessoren konfiguriert und auch für CMS geeignet
-XX:+UseParallelOldGCDie alte Methode der Garbage Collection ist Parallel CompactingDies ist die Parameteroption, die in JAVA 6 erscheint
-XX:MaxGCPauseMillisMaximale 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:+UseAdaptiveSizePolicyWä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:GCTimeRatioSetze die Müllabholungszeit als Prozentsatz der Laufzeit des ProgrammsDie Formel ist 1/(1+n)
-XX:+ScavengeBeforeFullGCVollständiges GC, bevor du YGC anrufsttrue
-XX:+UseConcMarkSweepGCVerwenden Sie die CMS-SpeichersammlungNach 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 HeapDer Versuch besteht darin, viel physischen Speicher zu verwendenEine Optimierung des langfristigen großen Speicherverbrauchs, um Rechenressourcen (Speicher, Anzahl der Prozessoren, mindestens 256 MB Speicher) zu überprüfen, ist erforderlich
-XX:CMSFullGCsBeforeCompactionWie 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:+CMSParallelAnmerkungAktiviertUntere Markierung pausiert
-XX+UseCMSCompactAtFullCollectionKompression 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:+UseCMSInitiatingOccupancyOnlyStarte die CMS-Sammlung mit manueller DefinitionsinitialisierungHostSpot ist es untersagt, CMS GC eigenständig auszulösen
-XX:CMSInitiatingOccupancyFraction=70Die CMS-Sammlung beginnt, nachdem 70 % des Mülls als Müllrecycling verwendet werdenDieser Wert muss gesetzt werden, um die folgende Formel zu erfüllen, CMSInitiatingOccupancyFraction
-XX:CMSInitiatingPermOccupancyFractionStellen Sie die Perm-Gen-Nutzung so ein, dass sie ausgelöst wird, wenn das Verhältnis erreicht ist92
-XX:+CMSIncrementalModeAuf inkrementellen Modus eingestelltVerwendung in Einzel-CPU-Gehäusen
-XX:+CMSClassUnloadingEnabledStändiger CMS-GC
-XX:+PrintGCGC-LogausgabeDasselbe wie -verbose:gc
-XX:+PrintGCDetailsEbd.Weitere Details
-XX:+PrintGCTimeStampsAusgabe-GC-ZeitstempelVerwenden Sie sie mit dem oben genannten PrintGC-Parameter oder schreiben Sie etwas wie -XX:+PrintGC:PrintGCTimeStamps
-XX:+DruckGC:DruckGCTimeStempelKann mit -XX:+PrintGC -XX:+PrintGCDetails gemischt werden.
-XX:+DruckGCApplicationStoppedTimeDie Zeit, zu der das Programm während der Printmüllabfuhr pausiert. Kann mit dem oben genannten kombiniert werdenAusgabeformat: Gesamtzeit, in der Anwendungsthreads gestoppt wurden: 0,0468229 Sekunden
-XX:+PrintGCApplicationConcurrentTimeDrucke die ununterbrochene Ausführungszeit des Programms vor jeder Garbage CollectionKann mit dem oben genannten Ausgabeformular gemischt werden: Anwendungszeit: 0,5291524 Sekunden
-XX:+PrintHeapAtGCDetaillierte Stapelinformationen vor und nach GC drucken
-Xloggc:DateinameProtokollieren Sie die relevanten Loginformationen in einer Datei zur AnalyseArbeitet mit den oben genannten wenigen
-XX:+PrintClassHistogrammNachdem du Strg+Break in der Konsole gedrückt hast, drucke die Klasseninformationen aus
-XX:+DruckKlasseHistogrammVorVollGCFullGC vor dem Druck
-XX:+PrintTLABSehen Sie die Nutzung des TLAB-Raums an
XX:+PrintTenuringDistributionSehen Sie sich die Schwelle für die neue Überlebensdauer nach jedem kleinen GC an
-EAAktivieren Sie assert assert
-XprofLeistungsdiagnostik
-XrunhprofLeistungsdiagnostik
-XX:+TraceClassLoadingDruckt 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:+TraceClassUnloadingInformationen zum Deinstallationsprozess der Druckklasse
XbootclasspathSpezifiziert das Laden von Klassen, die keine Prüfungen erfordernDas Überspringen der notwendigen Pre-Load-Kontrollen kann die Ladezeit verkürzen, ist aber nicht sicher
-XX:+DruckKompilationDrucken Sie den Methodennamen, den Hotspot mit JIT kompiliert
-XX:+HeapDumpOnOutMemoryErrorOM beim Erzeugen eines Heap-DumpsDie Standardausgabe befindet sich im Root-Ordner, in dem die Klassendateien gespeichert sind
-XX:HeapDumpPathSetzen Sie den Pfad der ausgegebenen OM-Dump-Datei einVerwendung mit -XX:+HeapDumpOnOutOfMemoryError

Anhang

[Standard-VM-Parameterblatt]

ParameternameBeschreibungVorgabe
-d32Verwenden Sie ein 32-Bit-Datenmodell (sofern verfügbar)
-d64Verwenden Sie ein 64-Bit-Datenmodell (falls verfügbar)
-ServerWählen Sie die Server-VM ausDie 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
-VersionGeben Sie die Produktversion aus und beenden Sie es
-<值>Version:Veraltet
-ShowversionGeben Sie die Produktversion aus und fahren Sie fort
-jre-restrict-search oder -no-jre-restrict-searchVeraltet
-? -HilfeGeben Sie diese Hilfemeldung aus
-XAusgabehilfe 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 -enablesystemassertionsSystembehauptungen aktivieren
-dsa oder -disablesystemassertionsSystembehauptungen 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






Vorhergehend:Nuget Series 1 verwendet asp.net, um ein privates Nuget-Repository zu erstellen.
Nächster:Mysql CURRENT_TIMESTAMP und ON UPDATE CURRENT_TIMESTAMP differenziert
 Vermieter| Veröffentlicht am 13.1.2022, 09:50:32 |


Hinweis: -Xms256m -Xmx1536m kann nicht nach dem Jar-Parameter gesetzt werden!
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com