Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 17284|Risposta: 1

[Fonte] Parametri JVM Opzioni

[Copiato link]
Pubblicato il 31-08-2020 22:20:25 | | |
Dividiamo i parametri JVM in tre parti basate sui parametri JVM che iniziano con -X o -XX:
1. A partire da -, l'opzione standard VM, l'opzione specifica VM;
2. Quelli che iniziano con -X sono non standard (questi parametri non sono garantiti per essere implementati su tutte le JVM) e se ci sono cambiamenti nella nuova versione, non verrà emessa alcuna notifica.
3. Quelli che iniziano con -XX sono instabili e non raccomandati per l'uso in ambienti di produzione. Anche le modifiche a questi parametri non saranno notificate. Opzioni parametri bool: -XX:+ acceso, -XX:- spento. (ad esempio -XX:+PrintGCDetails) L'opzione parametro numerico è impostata da -XX:=. I numeri possono essere m/m (megabyte), k/k (kilobyte), g/g (g-byte). Ad esempio: 32K significa 32768 byte. (ad esempio -XX:MaxPermSize=64m) L'opzione parametro stringa è impostata da -XX:=, che viene solitamente utilizzata per specificare un file, un percorso o una lista di comandi. (ad esempio -XX:HeapDumpPath=./java_pid.hprof) comando java -help può elencare le opzioni standard per l'avvio di applicazioni Java (vedi Appendix Standard VM Parameter Table, le diverse implementazioni JVM sono diverse). java -X può elencare parametri non standard (che è un'estensione della JVM). -Le opzioni relative a X non sono standard e non verranno notificate se vengono modificate. Se vuoi vedere i parametri JVM attualmente utilizzati dalla tua applicazione, puoi usare: ManagementFactory.getRuntimeMXBean().getInputArguments().

Nome del parametrosignificatoPredefiniti/Note
-XmsDimensione iniziale dell'heap1/64 (<1GB) di memoria fisica Per impostazione predefinita (il parametro MinHeapFreeRatio può essere regolato) Quando la memoria del heap libero è inferiore al 40%, la JVM aumenterà l'heap fino al limite massimo di -Xmx
-XmxDimensione massima del mucchio1/4 della memoria fisica (<1GB) predefinito (il parametro MaxHeapFreeRatio può essere regolato) Quando la memoria del heap libero è superiore al 70%, la JVM ridurrà l'heap fino al limite minimo di -xms
-XmnDimensione della generazione (JDK 1.4 o superiore)Dopo l'aumento della nuova generazione, la dimensione della vecchia generazione sarà ridotta. Questo valore ha un impatto significativo sulle prestazioni del sistema. Sun raccomanda ufficialmente la configurazione a 3/8 dell'intero stack
-XssLa dimensione dello stack di ogni threadDopo JDK5.0, la dimensione dello stack di ogni thread era di 1M, e precedentemente la dimensione dello stack di thread era di 256K, che può essere in unità K, M o G
-XX:DimensioneStackThreadIbid0 significa che il valore predefinito è usato e non può essere unito
-XX:Dimensioni permanentiImposta il valore iniziale dell'algebra permanente1/64 della memoria fisica
-XX:MaxPermDimensioneImposta il massimo permanente di generazione1/4 della memoria fisica
-XX:NewRatioRapporto tra il Cenozoico (inclusi l'Eden e due zone Survivor) rispetto all'età avanzata (escludendo la generazione permanente)-XX:NewRatio=4 significa che il rapporto tra il Cenozoico e l'Età Vecchia è 1:4, e il Cenozoico rappresenta 1/5 dell'intero stack, Xms=Xmx e Xmn è impostato, questo parametro non deve necessariamente essere impostato.
-XX:Rapporto sopravvissutoIl rapporto di dimensioni dell'area Eden rispetto all'area dei SurvivorSe impostato a 8, il rapporto tra due regioni Survivor e una regione Eden è 2:8, e una regione Survivor rappresenta 1/10 dell'intero Cenozoico
-XX:GrandeDimensionePaginaInBytesLa dimensione della pagina di memoria non dovrebbe essere impostata troppo grande, poiché influenzerebbe la dimensione della Perm=128m
-XX:+UsaMetodiAccessoriVelociOttimizzazione rapida del tipo originale
-XX:+DisabilitaEsplicitaGCChiudi System.gc()Questo parametro richiede test rigorosi
-XX:Soglia massima di incaricoIncaricoEtà massima della spazzaturaSe impostato a 0, l'oggetto di nuova generazione entrerà direttamente nella vecchia era senza passare attraverso l'area dei Sopravvissuti. Per applicazioni più vecchie, l'efficienza può essere migliorata. Se questo valore viene impostato a un valore grande, l'oggetto di nuova generazione verrà copiato più volte nella regione Survivor, il che può aumentare il tempo di sopravvivenza dell'oggetto nella nuova generazione e aumentare la probabilità di essere riciclato nella nuova generazione, valido solo per GC seriali
-XX:+Opt AggressiveCompilation Speed Up
-XX:+UsaBloccaDistortoMiglioramenti delle prestazioni per i meccanismi di bloccaggio
-XnoclassgcDisabilita il riciclo dei rifiuti
-XX:SoftRefLRUPolicyMSPerMBIl tempo di sopravvivenza di SoftReference per megapila di spazio libero1
-XX:PretenureSoglia di DimensioneLa dimensione dell'oggetto è distribuita direttamente nell'età avanzataUn altro caso in cui la nuova generazione usa Parallel Scavenge GC è invalido, e un altro caso in cui viene assegnato direttamente in vecchia età è un grande oggetto array senza oggetti di riferimento esterni nell'array.
-XX:TLABasteTargetPercentualePercentuale di TLAB nell'area di Eden1%
-XX:+CollectGen0FirstSe YGC viene prima quando FullGCfalse
-XX:+UsaParallelGCIl GC completo utilizza MSC paralleloVedi [Parametri GC][1]
-XX:+UseParNewGCImpostare la nuova generazione a raccogliere in paralleloPuò essere usato insieme alla raccolta CMS, JDK 5.0 o successiva, e la JVM lo imposterà in base alla configurazione del sistema, quindi non è necessario riimpostare questo valore
-XX:ParallelGCThreadsIl numero di filettature per il collettore paralleloQuesto valore si configura meglio pari al numero di processori ed è adatto anche per CMS
-XX:+UsaParalleloOldGCIl vecchio metodo di raccolta dei rifiuti è la Compattazione ParallelaQuesta è l'opzione parametro che appare in JAVA 6
-XX:MaxGCPauseMillisTempo massimo per ogni nuova generazione di raccolta dei rifiuti (tempo massimo di pausa)Se questo tempo non può essere rispettato, la JVM ridimensionerà automaticamente la nuova generazione per soddisfare questo valore.
-XX:+UsaDimensioneAdattivativaPolicySeleziona automaticamente la dimensione della nuova area di generazione e il corrispondente rapporto tra l'area sopravvissutaQuando questa opzione è impostata, il collettore parallelo seleziona automaticamente la dimensione della nuova area di generazione e la corrispondente proporzione dell'area sopravvissuta per raggiungere il tempo o la frequenza di raccolta minima specificata dal sistema target
-XX:GCTimeRatioImposta il tempo di raccolta dei rifiuti come percentuale del tempo di esecuzione del programmaLa formula è 1/(1+n)
-XX:+RecuperaPrimaFullGCRicevuta Generale completa prima di chiamare YGCtrue
-XX:+UsaConcMarcaSpazzaGCUsa la raccolta di memoria CMSDopo aver configurato questo nel test, la configurazione di -XX:NewRatio=4 è invalida e la ragione è sconosciuta, quindi è meglio usare -Xmn per impostare la dimensione della nuova generazione in questo momento
-XX:+Impicco AggressivoIl tentativo è di usare molta memoria fisicaÈ necessaria l'ottimizzazione dell'uso di memoria a lungo termine e di grande intensità, permettendo di controllare le risorse di calcolo (memoria, numero di processori, almeno 256MB di memoria)
-XX:CMSFullGCsPrimaCompattazioneQuante volte avviene la compressione della memoria?Poiché il collettore concorrente non comprime e non organizza lo spazio di memoria, produce una "frammentazione" dopo essere stato eseguito per un certo periodo, riducendo così l'efficienza operativa
-XX:+CMSParallelRemarkAbilitatoPause inferiori dei marcatori
-XX+UseCMSCompactAtFullCollectionCompressione della vecchiaia quando era FullGCIl CMS non sposta la memoria, quindi è molto facile produrre frammentazione, con conseguente insufficienza di memoria, quindi la compressione della memoria sarà attivata in questo momento. È una buona abitudine aumentare questo parametro. Può influire sulle prestazioni, ma può eliminare i detriti
-XX:+UseCMSInitiatingOccupancyOnlyAvvia la raccolta CMS con inizializzazione manuale della definizioneHostSpot è proibito attivare CMS GC da solo
-XX:CMSInitiatingOccupancyFraction=70La raccolta CMS inizia dopo che il 70% dei rifiuti viene utilizzato come riciclaggio dei rifiutiQuesto valore deve essere impostato per soddisfare la seguente formula, CMSInitiatingOccupancyFraction
-XX:CMSInitiatingPermOccupancyFractionImposta l'uso del Perm Gen per farlo attivare quando il rapporto è raggiunto92
-XX:+CMSIncrementalModeImpostato su modalità incrementaleUtilizzato in case a CPU singola
-XX:+CMSClassUnloadingEnabledGC permanente CMS
-XX:+PrintGCOutput logaritmico GCStesso vale per -verbose:gc
-XX:+PrintGCDetailsIbidMaggiori dettagli
-XX:+StampGCTimeStampsTimestamp GC di uscitaUsalo con il parametro PrintGC sopra citato, oppure scrivi qualcosa come -XX:+PrintGC:PrintGCTimeStamps
-XX:+StampGC:StampGCTimeStampsPuò essere miscelato con -XX:+PrintGC -XX:+PrintGCDetails
-XX:+StampaGCApplicazioneStoppedTimeIl momento in cui il programma si ferma durante la raccolta dei rifiuti di stampa. Può essere mescolato con quanto sopraFormato di output: tempo totale per cui i thread applicativi sono stati fermati: 0,0468229 secondi
-XX:+StampGCApplicazioneTempoContemporaneoTStampare il tempo di esecuzione ininterrotto del programma prima di ogni garbage collectionPuò essere miscelato con quanto sopra, forma di output: Tempo di applicazione: 0,5291524 secondi
-XX:+PrintHeapAtGCStampare informazioni dettagliate sugli stack prima e dopo la GC
-Xloggc:nome fileRegistra le informazioni di log rilevanti in un file per l'analisiFunziona con i pochi sopra
-XX:+IstogrammaClasseStampaTDopo aver premuto Ctrl+Break nella console, stampare le informazioni della classe
-XX:+StampaClasseIstogrammaPrimaGCFullGC prima della stampa
-XX:+PrintTLABVisualizza l'uso dello spazio TLAB
XX:+PrintTenuringDistributionVisualizza la soglia per il nuovo periodo di sopravvivenza dopo ogni GC minore
-EAAttiva la dichiarazione
-XprofDiagnostica delle prestazioni
-XrunhprofDiagnostica delle prestazioni
-XX:+TracciaClasseCaricamentoStampa informazioni sul processo di caricamento delle classiSimile a [Caricato java.util.AbstractList$Itr da /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/rt.jar]
-XX:+TraceClassUnloadingInformazioni sul processo di disinstallazione della classe di stampa
XbootclasspathSpecifica il carico delle classi che non richiedono controlliSaltare i controlli pre-caricamento necessari può ridurre il tempo di caricamento, ma non è sicuro
-XX:+Compilation StampaStampare il nome del metodo che Hotspot compila usando JIT
-XX:+HeapDumpOnOutOfMemoryErrorOM quando si genera un dump di heapL'output predefinito si trova nella cartella radice dove sono memorizzati i file di classe
-XX:ViaSvuotoDel MucchioImposta il percorso del file di dump OM in uscitaUsa con -XX:+HeapDumpOnOutOfMemoryError

Appendice

[Foglio parametro standard della VM]

Nome del parametrodescrizioneDefault
-d32Utilizzare un modello dati a 32 bit (se disponibile)
-d64Utilizzare un modello dati a 64 bit (se disponibile)
-serverSeleziona la VM serverLa VM predefinita è server perché stai girando su una macchina simile a un server.
-cp < directory e percorso di ricerca di classi zip/jar file >
-classpath < il percorso di ricerca di classi per directory e file zip/jar >Utilizza: un elenco di directory separate, archivi JAR e archivi ZIP per cercare file di classe
-D<名称>=<值>Imposta proprietà del sistema
-verboso: [classe o GC o JNI]Abilita output dettagliato
-VersioneUscita della versione del prodotto e uscita
-<值>versione:Deprecato
-versione dello spettacoloPubblica la versione del prodotto e continua
-jre-restringire-ricerca o -no-jre-restringire-ricercaDeprecato
-? -GuidaInvia questo messaggio di aiuto
-XAiuto per l'output con opzioni non standard
-EA[:< nome pacco, nome della classe>]asserta
-enableassertion[:< nome pacchetto, nome classe>]Abilita le asserzioni alla granularità specificata
-da[:< nome pacco, nome della classe>]
-disableassertion[:< nome pacchetto, nome classe>]Disabilita le asserzioni con una granularità specificata
-ESA o -enablesystemassertionsAbilita le asserzioni di sistema
-DSA o -disablesystemassertionsDisabilita le asserzioni di sistema
-agentlib:<libname>[=<选项>]Carica la libreria <libname>dell'agente nativoAd esempio, -agentlib:hprofVedi anche -agentlib:jdwp=help e -agentlib:hprof=help
-agentpath:<pathname>[=<选项>]Carica la libreria agente locale con il nome completo del percorso
-javaagent:<jarpath>[=<选项>]Per caricare l'agente del linguaggio di programmazione Java, consulta java.lang.instrument
-splash:<imagepath>Visualizza la schermata iniziale con l'immagine specificata






Precedente:Nuget Series 1 utilizza asp.net per costruire un repository Nuget privato
Prossimo:Mysql CURRENT_TIMESTAMP e ON UPDATE CURRENT_TIMESTAMP differenziati
 Padrone di casa| Pubblicato il 13-01-2022 09:50:32 |


Nota: -Xms256m -Xmx1536m non può essere posizionato dopo il parametro jar!
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com