Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 17284|Antwoord: 1

[Bron] JVM-parameters Opties

[Link kopiëren]
Geplaatst op 31-8-2020 22:20:25 | | |
We verdelen de JVM-parameters in drie delen op basis van de JVM-parameters beginnend met -X of -XX:
1. Beginnend met -, de standaard VM-optie, de VM-specificatie-optie;
2. Parameters die beginnen met -X zijn niet-standaard (deze parameters zijn niet gegarandeerd geïmplementeerd op alle JVM's), en als er wijzigingen zijn in de nieuwe versie, wordt er geen melding gegeven.
3. Degenen die beginnen met -XX zijn onstabiel en niet aanbevolen voor gebruik in productieomgevingen. Wijzigingen aan deze parameters worden ook niet gemeld. Bool parameteropties: -XX:+ aan, -XX:- uit. (bijv. -XX:+PrintGCDetails) De numerieke parameteroptie wordt ingesteld door -XX:=. Getallen kunnen m/m (megabytes), k/k (kilobytes), g/g (g-bytes) zijn. Bijvoorbeeld: 32K betekent 32768 bytes. (bijv. -XX:MaxPermSize=64m) De optie String-parameter wordt ingesteld door -XX:=, wat meestal wordt gebruikt om een bestand, pad of commandolijst te specificeren. (bijv. -XX:HeapDumpPath=./java_pid.hprof) kan het commando java -help de standaardopties voor het opstarten van java-applicaties weergeven (zie Appendix Standard VM Parameter Table, verschillende JVM-implementaties verschillen). java -X kan niet-standaard parameters vermelden (wat een uitbreiding is van de JVM). -X-gerelateerde opties zijn niet standaard en worden niet op de hoogte gebracht als ze worden gewijzigd. Als je de JVM-parameters wilt zien die momenteel door je applicatie worden gebruikt, kun je volgen: ManagementFactory.getRuntimeMXBean().getInputArguments().

ParameternaambetekenisStandaarden/Noten
-XMSInitiële heapgrootte1/64 (<1GB) fysiek geheugen Standaard (MinHeapFreeRatio-parameter kan worden aangepast) Wanneer het vrije heapgeheugen minder dan 40% is, zal de JVM de heap vergroten tot de maximale limiet van -Xmx
-XmxMaximale heapgrootte1/4 van het fysieke geheugen (<1GB) standaard (MaxHeapFreeRatio-parameter kan worden aangepast) Wanneer het vrije heapgeheugen groter is dan 70%, zal de JVM de heap verkleinen tot de minimale limiet van -xms
-XmnGeneratiegrootte (JDK 1.4 of hoger)Na het vergroten van de nieuwe generatie zal de omvang van de oude generatie worden verkleind. Deze waarde heeft een aanzienlijke invloed op de systeemprestaties. Sun raadt officieel de configuratie aan voor 3/8 van de hele stack
-XssDe stapelgrootte van elke threadNa JDK5.0 was elke threadstack 1M, en voorheen was elke threadstack 256K, wat in K-, M- of G-eenheden kan bestaan
-XX:ThreadStackSizeIbid0 betekent dat de standaardwaarde wordt gebruikt en dat deze niet verenigd kan worden
-XX:PermSizeStel de beginwaarde van de permanente algebra in1/64 van het fysieke geheugen
-XX:MaxPermSizeStel het maximum voor permanente generatie in1/4 van het fysieke geheugen
-XX:NewRatioVerhouding van Cenozoïcum (inclusief Eden en twee Survivor-zones) tot ouderdom (exclusief permanente generatie)-XX:NewRatio=4 betekent dat de verhouding van het Cenozoïcum tot het Oude Tijdperk 1:4 is, en het Cenozoïcum beslaat 1/5 van de hele stapel, Xms=Xmx en Xmn is vastgesteld, deze parameter hoeft niet te worden ingesteld.
-XX:OverlevendeRatioDe grootteverhouding van het Eden-gebied tot het Survivor-gebiedAls het op 8 wordt gezet, is de verhouding van twee Overlevende-regio's tot één Eden-regio 2:8, en één Overlevende-regio is goed voor 1/10 van het hele Cenozoïcum
-XX:GrotePaginaGrootteInBytesDe grootte van de geheugenpagina mag niet te groot worden ingesteld, omdat dit de grootte van de Perm beïnvloedt=128m
-XX:+UseFastAccessorMethodsSnelle optimalisatie van het oorspronkelijke type
-XX:+DisableExplicitGCSluit System.gc()Deze parameter vereist rigoureuze tests
-XX:MaxTenuringDrempelMaximale leeftijd van afvalAls het op 0 staat, zal het nieuwe generatieobject direct het oude tijdperk binnengaan zonder door het Survivor-gebied te gaan. Voor oudere toepassingen kan de efficiëntie worden verbeterd. Als deze waarde op een grote waarde wordt gezet, wordt het nieuwe generatieobject meerdere keren gekopieerd in de Survivor-regio, wat de overlevingstijd van het object in de nieuwe generatie kan verlengen en de kans op hergebruik in de nieuwe generatie kan verhogen, wat alleen geldig is voor seriële GC
-XX:+AggressiveOptsVersnellen compilatie
-XX:+UseBiasedLockingPrestatieverbeteringen voor vergrendelingsmechanismen
-XnoclassgcSchakel afvalrecycling uit
-XX:SoftRefLRUPolicyMSPerMBDe overlevingstijd van SoftReference per megapile vrije ruimte1s
-XX:PretenureSizeDrempelDe grootte van het object wordt direct verdeeld in ouderdomEen ander geval waarin de nieuwe generatie Parallel Scavenge GC gebruikt is ongeldig, en een ander geval waarin het in de oude tijd direct wordt toegewezen, is een groot array-object zonder externe referentieobjecten in de array.
-XX:TLABWasteTargetPercentagePercentage TLAB in het Eden-gebied1%
-XX:+CollectGen0FirstOf YGC op de eerste plaats komt bij FullGCfalse
-XX:+UseParallelGCVolledige GC gebruikt parallelle MSCZie [GC Parameters][1]
-XX:+UseParNewGCDe nieuwe generatie laten inzamelen parallelHet kan worden gebruikt in combinatie met CMS-collectie, JDK 5.0 of later, en de JVM zal het aanpassen aan de systeemconfiguratie, dus het is niet nodig deze waarde opnieuw in te stellen
-XX:ParallelGCThreadsHet aantal threads voor de parallelle collectorDeze waarde is het beste geconfigureerd gelijk aan het aantal processors en is ook geschikt voor CMS
-XX:+UseParallelOldGCDe oude methode voor afvalverzameling heet Parallel CompactingDit is de parameteroptie die in JAVA 6 voorkomt
-XX:MaxGCPauseMillisMaximale tijd per afvalinzameling van nieuwe generatie (maximale pauzetijd)Als deze tijd niet wordt gehaald, zal de JVM automatisch de nieuwe generatie aanpassen om aan deze waarde te voldoen.
-XX:+UseAdaptiveSizePolicySelecteer automatisch de grootte van het nieuwe generatiegebied en de bijbehorende verhouding van het overlevendengebiedWanneer deze optie is ingesteld, selecteert de parallelle collector automatisch de grootte van het nieuwe generatiegebied en het bijbehorende aandeel van het overlevende gebied om de minimale overeenkomstige tijd of verzamelfrequentie te bereiken die door het doelsysteem is gespecificeerd
-XX:GCTimeRatioStel de tijd van de garbage collection in als een percentage van de looptijd van het programmaDe formule is 1/(1+n)
-XX:+ScavengeBeforeFullGCVolledige GC voordat je YGC belttrue
-XX:+UseConcMarkSweepGCGebruik CMS-geheugencollectieNa het configureren hiervan in de test is de configuratie van -XX:NewRatio=4 ongeldig, en de reden is onbekend, dus het is het beste om -Xmn te gebruiken om de grootte van de nieuwe generatie op dit moment in te stellen
-XX:+Agressieve HeapDe poging is om veel fysiek geheugen te gebruikenOptimalisatie van langdurig groot geheugengebruik, kan rekenbronnen controleren (geheugen, aantal processors, minstens 256MB geheugen) is vereist
-XX:CMSFullGCsBeforeCompactTHoe vaak vindt geheugencompressie plaats?Omdat de gelijktijdige collector de geheugenruimte niet comprimeert en organiseert, zal hij na een bepaalde periode "fragmentatie" produceren, wat de operationele efficiëntie vermindert
-XX:+CMSParallelOpmerkingIngeschakeldOnderste marker pauzeert
-XX+UseCMSCompactAtFullCollectionCompressie van de ouderdom toen het FullGC wasCMS verplaatst geen geheugen, waardoor fragmentatie zeer gemakkelijk kan worden veroorzaakt, wat resulteert in onvoldoende geheugen, dus geheugencompressie wordt op dit moment ingeschakeld. Het is een goede gewoonte om deze parameter te verhogen. Het kan de prestaties beïnvloeden, maar het kan ook vuil elimineren
-XX:+GebruikCMSInitiatingInOccupancyOnlyStart CMS-verzameling met handmatige definitie-initialisatieHostSpot mag CMS GC niet op zichzelf activeren
-XX:CMSInitiatingOccupancyFraction=70De CMS-inzameling begint nadat 70% van het afval is gebruikt als afvalrecyclingDeze waarde moet worden ingesteld om te voldoen aan de volgende formule, CMSInitiatingOccupancyFraction
-XX:CMSInitiatingPermBezettingsfractieStel het Perm Gen-gebruik in om te activeren wanneer de ratio is bereikt92
-XX:+CMSIncrementalModeInstellen op Incrementele modusGebruikt in single-CPU-behuizingen
-XX:+CMSClassUnloadingEnabledPermanente CMS GC
-XX:+PrintGCGC-loguitvoerHetzelfde als -verbose:gc
-XX:+PrintGCDetailsIbidMeer details
-XX:+PrintGCTimeStampsUitvoer GC-tijdstempelGebruik het met de bovenstaande PrintGC-parameter, of schrijf iets als -XX:+PrintGC:PrintGCTimeStamps
-XX:+PrintGC:PrintGCTimeStampsKan worden gemengd met -XX:+PrintGC -XX:+PrintGCDetails
-XX:+PrintGCApplicationGestopteTijdHet moment waarop het programma pauzeert tijdens het verzamelen van papieren afval. Kan worden gecombineerd met bovenstaandeUitvoerformaat: Totale tijd waarin applicatiethreads werden gestopt: 0,0468229 seconden
-XX:+PrintGCApplicationConcurrentTimePrint de ononderbroken uitvoeringstijd van het programma vóór elke garbage collectionKan worden gecombineerd met het bovenstaande, uitvoervorm: Toepassingstijd: 0,5291524 seconden
-XX:+PrintHeapAtGCPrint gedetailleerde stapelinformatie voor en na GC
-Xloggc:bestandsnaamLog de relevante loginformatie in een bestand voor analyseWerkt met de bovenstaande paar
-XX:+PrintClassHistogramNa het indrukken van Ctrl+Break in de console, print je de klasse-informatie
-XX:+PrintClassHistogramBeforeFullGCFullGC vóór het drukken
-XX:+PrintTLABBekijk het gebruik van de TLAB-ruimte
XX:+PrintTenuringDistributionBekijk de drempel voor de nieuwe overlevingsperiode na elke kleine GC
-eaZet assert assert aan
-XprofPrestatiediagnostiek
-XrunhprofPrestatiediagnostiek
-XX:+TraceClassLoadingPrint informatie over het laadproces van de klasseVergelijkbaar met [Loaded java.util.AbstractList$Itr van /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/rt.jar]
-XX:+TraceClassUnloadingInformatie over het verwijderen van het proces van printklasse
XbootclasspathSpecificeert het laden van klassen die geen checks vereisenHet overslaan van de noodzakelijke pre-load checks kan de laadtijd verkorten, maar het is niet veilig
-XX:+PrintCompilatiePrint de methodenaam die Hotspot compileert met JIT
-XX:+HeapDumpOnOutOfMemoryErrorOM bij het genereren van een heapdumpDe standaarduitvoer bevindt zich in de rootmap waar de class-bestanden zijn opgeslagen
-XX:HeapDumpPathStel het pad voor het uitvoer van OM dumpbestanden inGebruik met -XX:+HeapDumpOnOutOfMemoryError

Bijlage

[Standaard VM Parameterblad]

ParameternaambeschrijvingVerstek
-d32Gebruik een 32-bits datamodel (indien beschikbaar)
-d64Gebruik een 64-bits datamodel (indien beschikbaar)
-serverSelecteer de server-VMDe standaard VM is server omdat je op een serverachtige machine draait.
-cp < directory- en zip/jar-bestandsklasse zoekpad >
-classpath < het klassezoekpad voor mappen en zip/jar-bestanden >Gebruik : een lijst van gescheiden directories, JAR-archieven en ZIP-archieven om te zoeken naar klassebestanden
-D<名称>=<值>Eigenschappen van het verzamelingssysteem
-Omschot: [Klas of GC of JNI]Schakel gedetailleerde uitvoer in
-VersieVoer de productversie uit en sluit uit
-<值>versie:Verouderd
-ShowversieVoer de productversie uit en ga verder
-jre-restrict-search of -no-jre-restrict-searchVerouderd
-? -HelpVoer dit hulpbericht uit
-XHulp bij uitvoer met niet-standaard opties
-EA[:< pakketnaam, klasnaam>]assert
-enableassertions[:< pakketnaam, klassenaam>]Schakel asserties in bij de gespecificeerde granulariteit
-da[:< pakketnaam, klasnaam>]
-disableassertions[:< pakketnaam, klassenaam>]Schakel asserties uit met een gespecificeerde granulariteit
-esa of -enablesystemassertiesEnable system asserties
-dsa of -disablesystemassertiesSchakel systeemasserties uit
-agentlib:<libname>[=<选项>]Laad de native agentbibliotheek <libname>Bijvoorbeeld, -agentlib:hprofZie ook -agentlib:jdwp=help en -agentlib:hprof=help
-agentpath:<pathname>[=<选项>]Laad de lokale agentbibliotheek met de volledige padnaam
-Javaagent:<jarpath>[=<选项>]Om de Java programmeertaalagent te laden, zie java.lang.instrument
-Splash:<imagepath>Toon het opstartscherm met de opgegeven afbeelding






Vorig:Nuget Series 1 gebruikt asp.net om een privé Nuget-repository te bouwen
Volgend:Mysql CURRENT_TIMESTAMP en ON UPDATE CURRENT_TIMESTAMP onderscheiden
 Huisbaas| Geplaatst op 13-1-2022 09:50:32 |


Opmerking: -Xms256m -Xmx1536m kan niet na de jar-parameter worden geplaatst!
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com