Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 17284|Răspunde: 1

[Sursă] Parametri JVM Opțiuni

[Copiază linkul]
Postat la 2020-8-31 22:20:25 | | |
Împărțim parametrii JVM în trei părți pe baza parametrilor JVM care încep cu -X sau -XX:
1. Începând cu -, opțiunea standard de VM, opțiunea de specificație VM;
2. Cele care încep cu -X sunt nestandard (acești parametri nu sunt garantați să fie implementați pe toate JVM-urile), iar dacă apar modificări în noua versiune, nu va fi emisă nicio notificare.
3. Cele care încep cu -XX sunt instabile și nu sunt recomandate pentru utilizare în medii de producție. Modificările acestor parametri nu vor fi, de asemenea, notificate. Opțiuni pentru parametrii bool: -XX:+ activat, -XX:- oprit. (de exemplu -XX:+PrintGCDetails) Opțiunea parametrului numeric este setată prin -XX:=. Numerele pot fi m/m (megabytes), k/k (kilobytes), g/g (g-bytes). De exemplu: 32K înseamnă 32768 octeți. (de exemplu -XX:MaxPermSize=64m) Opțiunea parametrului String este setată cu -XX:=, care este de obicei folosită pentru a specifica un fișier, o cale sau o listă de comenzi. (de exemplu, -XX:HeapDumpPath=./java_pid.hprof) comanda java -help poate lista opțiunile standard pentru pornirea aplicațiilor java (vezi Tabela Standard a Parametrilor pentru VM din Anexa, diferitele implementări JVM sunt diferite). java -X poate lista parametri ne-standard (care este o extensie a JVM-ului). -Opțiunile legate de X nu sunt standard și nu vor fi notificate dacă sunt modificate. Dacă vrei să vezi parametrii JVM folosiți în prezent de aplicația ta, poți folosi: ManagementFactory.getRuntimeMXBean().getInputArguments().

Numele parametruluirostSetări implicite/Note
-XmsDimensiunea inițială a grămezii1/64 (<1GB) de memorie fizică Implicit (parametrul MinHeapFreeRatio poate fi ajustat) Când memoria heap-ului liber este mai mică de 40%, JVM-ul va crește heap-ul până la limita maximă de -Xmx
-XmxDimensiunea maximă a grămadei1/4 din memoria fizică (<1GB) (parametrul MaxHeapFreeRatio poate fi ajustat) Când memoria heap-ului liber este mai mare de 70%, JVM-ul va reduce heap-ul până la limita minimă de -xms
-XmnDimensiunea generației (JDK 1.4 sau mai mare)După creșterea noii generații, dimensiunea generației vechi va fi redusă. Această valoare are un impact semnificativ asupra performanței sistemului. Sun recomandă oficial configurația pentru 3/8 din întreaga stivă
-XssDimensiunea stivei fiecărui firDupă JDK5.0, dimensiunea fiecărei stive de fire era de 1M, iar anterior fiecare dimensiune a stivei de fire era de 256K, care putea fi în unități K, M sau G
-XX:ThreadStackSizeIbid0 înseamnă că valoarea implicită este folosită și nu poate fi unită
-XX:Dimensiune permanentăSetează valoarea inițială a algebrei permanente1/64 din memoria fizică
-XX:MaxPermSizeSetează maximul de generare permanentă1/4 din memoria fizică
-XX:NewRatioRaportul dintre Cenozoic (inclusiv Eden și două zone Supraviețuitoare) față de Bătrânețe (excluzând generarea permanentă)-XX:NewRatio=4 înseamnă că raportul dintre Cenozoic și Bătrânețe este 1:4, iar Cenozoicul reprezintă 1/5 din întregul stack, Xms=Xmx și Xmn este setat, acest parametru nu trebuie setat.
-XX:SupraviețuitorRatioRaportul de dimensiune al zonei Eden față de zona SupraviețuitorilorDacă este setat la 8, raportul dintre două regiuni Supraviețuitor și o regiune Eden este 2:8, iar o regiune Supraviețuitor reprezintă 1/10 din întregul Cenozoic
-XX:MărimePaginÎnOctețiDimensiunea paginii de memorie nu ar trebui setată prea mare, deoarece va afecta dimensiunea Perm-ului=128m
-XX:+UseFastAccessorMethods.Optimizare rapidă a tipului original
-XX:+DisableExplicitGCÎnchide System.gc()Acest parametru necesită teste riguroase
-XX:Prag maxim de titularizareVârsta maximă a gunoiuluiDacă este setat la 0, obiectul de generație nouă va intra direct în era veche fără a trece prin zona Supraviețuitorului. Pentru aplicațiile mai vechi, eficiența poate fi îmbunătățită. Dacă această valoare este setată la o valoare mare, obiectul de generație va fi copiat de mai multe ori în regiunea Survivor, ceea ce poate crește timpul de supraviețuire al obiectului în noua generație și poate crește probabilitatea de a fi reciclat în noua generație, ceea ce este valabil doar pentru GC serial
-XX:+AgresiveOptsCompilarea accelerării
-XX:+FoloseBlocarePărtinitoare.Îmbunătățiri de performanță pentru mecanismele de blocare
-XnoclassgcDezactivează reciclarea gunoiului
-XX:SoftRefLRUPolicyMSPerMBTimpul de supraviețuire al SoftReference per megagrămadă de spațiu liber1
-XX:Prag de mărime înainte de titularitateDimensiunea obiectului este distribuită direct la bătrânețeUn alt caz în care noua generație folosește Parallel Scavenge GC este invalid, iar un alt caz în care este atribuită direct în epoca veche este un obiect mare de tip array fără obiecte de referință externe în array.
-XX:TLABWasteTargetPercentageTProcentajul TLAB în zona Eden1%
-XX:+CollectGen0FirstDacă YGC vine pe primul loc când FullGCfalse
-XX:+UseParallelGCGC complet folosește MSC paralelVezi [Parametri GC][1]
-XX:+UseParNewGCSetarea noii generații să colecteze în paralelPoate fi folosit împreună cu colecția CMS, JDK 5.0 sau mai târziu, iar JVM-ul îl va seta conform configurației sistemului, astfel încât nu este nevoie să seteze din nou această valoare
-XX:ParallelGCThreadsNumărul de fire pentru colectorul paralelAceastă valoare este cel mai bine configurată egală cu numărul de procesoare și este potrivită și pentru CMS
-XX:+FoloseșteParalelOldGCVechea metodă de colectare a gunoiului este Compactarea ParalelăAceasta este opțiunea parametrului care apare în JAVA 6
-XX:MaxGCPauseMillisTimp maxim per generație nouă de colectare a deșeurilor (timp maxim de pauză)Dacă acest timp nu poate fi atins, JVM-ul va redimensiona automat noua generație pentru a corespunde acestei valori.
-XX:+UseAdaptiveSizePolicySelectează automat dimensiunea noii zone de generare și raportul corespunzător al suprafeței supraviețuitoareCând această opțiune este setată, colectorul paralel selectează automat dimensiunea noii zone de generare și proporția corespunzătoare a suprafeței supraviețuitorului pentru a atinge timpul minim corespunzător sau frecvența de colectare specificată de sistemul țintă
-XX:GCTimeRatioSetează timpul de colectare a gunoiului ca procent din timpul de rulare al programuluiFormula este 1/(1+n)
-XX:+ScotoarăÎnainteFullGCGC complet înainte de a suna la YGCtrue
-XX:+FoloseConcMarkSweepGCFolosiți colectarea memoriei CMSDupă configurarea acestui lucru în test, configurația lui -XX:NewRatio=4 este invalidă, iar motivul este necunoscut, așa că este mai bine să se folosească -Xmn pentru a seta dimensiunea noii generații în acest moment
-XX:+Grămadă AgresivăÎncercarea este de a folosi multă memorie fizicăOptimizarea utilizării mari de memorie pe termen lung, poate verifica resursele de calcul (memorie, număr de procesoare, cel puțin 256MB memorie)
-XX:CMSFullGCsÎnainteDecompactareDe câte ori apare compresia memoriei?Deoarece colectorul concurent nu comprimă și nu organizează spațiul de memorie, acesta va produce "fragmentare" după o perioadă de rulare de timp, ceea ce reduce eficiența operațională
-XX:+CMSParallelRemarkActivatPauze inferioare ale marcatorilor
-XX+UseCMSCompactAtFullCollectionCompresia bătrâneții când era FullGCCMS nu mișcă memoria, așa că este foarte ușor să se producă fragmentare, ceea ce duce la memorie insuficientă, astfel că compresia memoriei va fi activată în acest moment. Este un obicei bun să crești acest parametru. Poate afecta performanța, dar poate elimina resturile
-XX:+UseCMSInitiatingOccupancyOnlyÎncepe colectarea CMS cu inițializarea manuală a definițieiHostSpot are interzis să declanșeze CMS GC de unul singur
-XX:CMSInitiatingOccupancyFraction=70Colectarea CMS începe după ce 70% din gunoi este folosit ca reciclare a gunoiuluiAceastă valoare trebuie setată pentru a respecta următoarea formulă, CMSInitiatingOccupancyFraction
-XX:CMSInitiatingPermOccupancyFractionSetează utilizarea Perm Gen să se declanșeze când se atinge raportul92
-XX:+CMSIncrementalModeSetați pe modul incrementalFolosită în carcase cu un singur CPU
-XX:+CMSClassUnloadingEnabledPermanent CMS GC
-XX:+PrintGCIeșire logaritmică GCLa fel ca -verbose:gc
-XX:+PrintGCDetailsIbidMai multe detalii
-XX:+PrintGCTimeStampsMarca temporală GC de ieșireFolosește-l cu parametrul PrintGC de mai sus sau scrie ceva de genul -XX:+PrintGC:PrintGCTimeStamps
-XX:+PrintGC:PrintGCTimeStampsPoate fi amestecat cu -XX:+PrintGC -XX:+PrintGCDetails
-XX:+PrintGCApplicareOprităTimpOprităTMomentul în care programul se oprește în timpul colectării gunoiului tipărit. Poate fi amestecat cu cele de mai susFormat de ieșire: Timp total pentru care firele de execuție ale aplicației au fost oprite: 0,0468229 secunde
-XX:+PrintGCApplicationConcurrentTimePrintează timpul neîntrerupt de execuție al programului înainte de fiecare colectare a gunoiuluiPoate fi amestecat cu cele de mai sus, forma de ieșire: Timp de aplicare: 0,5291524 secunde
-XX:+PrintHeapAtGCTipărește informații detaliate despre stivă înainte și după GC
-Xloggc:nume fișierÎnregistrează informațiile relevante din jurnal într-un fișier pentru analizăFuncționează cu cele de mai sus
-XX:+PrintClassHistogramDupă apăsarea Ctrl+Break în consolă, imprimați informațiile despre clasă
-XX:+PrintClassHistogramBeforeFullGCFullGC înainte de tipărire
-XX:+PrintTLABVizualizați utilizarea spațiului TLAB
XX:+PrintTenuringDistributionVezi pragul pentru noua perioadă de supraviețuire după fiecare GC minor
-EAActivează asumarea asumării
-XprofDiagnosticarea performanței
-XrunhprofDiagnosticarea performanței
-XX:+TraceClassLoadingTipărește informații despre procesul de încărcare a claseiSimilar cu [Încărcat java.util.AbstractList$Itr de la /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/rt.jar]
-XX:+TraceClassUnloadingInformații despre procesul de dezinstalare a clasei Print
XbootclasspathSpecifică încărcarea claselor care nu necesită verificăriSărirea peste verificările necesare înainte de încărcare poate reduce timpul de încărcare, dar nu este sigură
-XX:+PrintCompilationTipărește numele metodei pe care Hotspot îl compila folosind JIT
-XX:+HeapDumpOnOutofMemoryErrorOM când generezi un dump de heapIeșirea implicită este în folderul rădăcină, unde sunt stocate fișierele de clasă
-XX:HeapDumpPathSetează calea fișierului de dump OM de ieșireFolosirea cu -XX:+HeapDumpOnOutofMemoryError

Anexă

[Fișă standard de parametri VM]

Numele parametruluidescriereImplicit
-d32Folosiți un model de date pe 32 de biți (dacă este disponibil)
-d64Folosește un model de date pe 64 de biți (dacă este disponibil)
-serverSelectează VM-ul serveruluiVM-ul implicit este server pentru că rulezi pe o mașină asemănătoare serverului.
-cp < directorul și calea de căutare a clasei zip/jar >
-classpath < calea de căutare a clasei pentru directoare și fișiere zip/jar >Folosiți: o listă de directoare separate, arhive JAR și arhive ZIP pentru a căuta fișiere de clase
-D<名称>=<值>Proprietăți ale sistemului de mulțime
-verbose: [clasă sau GC sau JNI]Activează ieșirea detaliată
-versiuneIeși versiunea produsului și ieșirea
-<值>Versiune:Depreciat
-showversionScoate versiunea produsului și continuă
-jre-restrict-search sau -no-jre-restrict-searchDepreciat
-? -ajutorTrimite acest mesaj de ajutor
-XAjutor la ieșire pentru opțiuni non-standard
-ea[:< numele pachetului, numele clasei>]Afirmă
-enableassertion[:< numele pachetului, numele clasei>]Permiteți aserții la granularitatea specificată
-da[:< numele pachetului, numele clasei>]
-disableassertion[:< numele pachetului, numele clasei>]Dezactivează asertiile cu o granularitate specificată
-ESA sau -enablesystemassertionsActivează asertiile sistemului
-DSA sau -disablesystemassertionsDezactivați aserțiile sistemului
-agentlib:<libname>[=<选项>]Încarcă biblioteca <libname>agenților nativiDe exemplu, -agentlib:hprofVezi și -agentlib:jdwp=help și -agentlib:hprof=help
-agentpath:<pathname>[=<选项>]Încarcă biblioteca agentului local după numele complet al traseului
-javaagent:<jarpath>[=<选项>]Pentru a încărca agentul limbajului de programare Java, vezi java.lang.instrument
-splash:<imagepath>Afișează ecranul de pornire cu imaginea specificată






Precedent:Nuget Series 1 folosește asp.net pentru a construi un depozit privat Nuget
Următor:Mysql CURRENT_TIMESTAMP și ON UPDATE CURRENT_TIMESTAMP diferențiate
 Proprietarul| Postat la 2022-1-13 09:50:32 |


Notă: -Xms256m -Xmx1536m nu poate fi plasat după parametrul jar!
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com