Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 17284|Resposta: 1

[Fonte] Parâmetros da JVM Opções

[Copiar link]
Postado em 2020-8-31 22:20:25 | | |
Dividimos os parâmetros da JVM em três partes com base nos parâmetros da JVM começando com -X ou -XX:
1. Começando com -, a opção padrão de VM, a opção de especificação de VM;
2. Aqueles que começam com -X são não padrão (esses parâmetros não garantem ser implementados em todas as JVMs), e se houver alguma alteração na nova versão, nenhuma notificação será emitida.
3. Aqueles que começam com -XX são instáveis e não são recomendados para uso em ambientes de produção. Mudanças nesses parâmetros também não serão notificadas. Opções de parâmetros Bool: -XX:+ ativado, -XX:- desligado. (ex.: -XX:+PrintGCDetails) A opção do parâmetro numérico é definida por -XX:=. Os números podem ser m/m (megabytes), k/k (kilobytes), g/g (g-bytes). Por exemplo: 32K significa 32.768 bytes. (ex.: -XX:MaxPermSize=64m) A opção do parâmetro String é definida por -XX:=, que geralmente é usada para especificar um arquivo, caminho ou lista de comandos. (por exemplo, -XX:HeapDumpPath=./java_pid.hprof) comando java -help pode listar as opções padrão para inicialização de aplicações java (veja Apêndice Tabela de Parâmetros Padrão de VM, diferentes implementações de JVM são diferentes). java -X pode listar parâmetros não padrão (que é uma extensão da JVM). As opções relacionadas a X não são padrão e não serão notificadas se forem alteradas. Se quiser ver os parâmetros da JVM atualmente usados pela sua aplicação, pode usar: ManagementFactory.getRuntimeMXBean().getInputArguments().

Nome do parâmetrosignificadoPadrão/Notas
-XmsTamanho inicial do heap1/64 (<1GB) de memória física Por padrão (o parâmetro MinHeapFreeRatio pode ser ajustado) Quando a memória do heap livre for inferior a 40%, a JVM aumentará o heap até o limite máximo de -Xmx
-XmxTamanho máximo do heap1/4 da memória física (<1GB) padrão (o parâmetro MaxHeapFreeRatio pode ser ajustado) Quando a memória do heap livre é maior que 70%, a JVM reduzirá o heap até o limite mínimo de -xms
-XmnTamanho da geração (JDK 1.4 ou superior)Após aumentar a nova geração, o tamanho da geração antiga será reduzido. Esse valor tem um impacto significativo no desempenho do sistema. A Sun recomenda oficialmente a configuração para 3/8 de toda a pilha
-XssO tamanho da pilha de cada threadApós o JDK5.0, cada tamanho de pilha de threads era 1M, e anteriormente cada tamanho de pilha de threads era 256K, que pode estar em unidades K, M ou G
-XX:TamanhoPilhaThreadStackIbid0 significa que o valor padrão é usado e ele não pode ser unido
-XX:Tamanho permanenteDefina o valor inicial da álgebra permanente1/64 da memória física
-XX:MaxPermSizeDefina o máximo de geração permanente1/4 da memória física
-XX:NewRatioProporção entre o Cenozóico (incluindo Éden e duas zonas Survivor) e a Velhice (excluindo geração permanente)-XX:NewRatio=4 significa que a razão entre o Cenozóico e a Idade Avançada é 1:4, e o Cenozóico representa 1/5 de toda a pilha, Xms=Xmx e Xmn está definido, esse parâmetro não precisa ser definido.
-XX:Razão de SobreviventesA proporção de tamanho da área Eden em relação à área dos SobreviventesSe definido para 8, a razão de duas regiões Survivor para uma região Eden é 2:8, e uma região Survivor representa 1/10 de todo o Cenozóico
-XX:GrandeTamanhoPáginaEmBytesO tamanho da página de memória não deve ser definido muito grande, pois isso afetará o tamanho da Perm=128m
-XX:+UseFastAccessorMethodsOtimização rápida do tipo original
-XX:+DisableExplicitGCFechar System.gc()Esse parâmetro requer testes rigorosos
-XX:LimiarMáximo de EstabilidadeIdade máxima do lixoSe configurado para 0, o objeto de nova geração entrará diretamente na era antiga sem passar pela área do Sobrevivente. Para aplicações mais antigas, a eficiência pode ser melhorada. Se esse valor for definido para um valor grande, o objeto da nova geração será copiado várias vezes na região Survivor, o que pode aumentar o tempo de sobrevivência do objeto na nova geração e aumentar a probabilidade de ser reciclado na nova geração, o que só é válido para GC serial
-XX:+Optas AgressivasCompilação de aceleração
-XX:+UsarTravamentoEnviesadoTMelhorias de desempenho para mecanismos de travamento
-XnoclassgcDesativar a reciclagem de lixo
-XX:SoftRefLRUPolicyMSPerMBO tempo de sobrevivência do SoftReference por megapilha de espaço livre1s
-XX:Pré-TenênciaLimiarTamanhoTamanhoO tamanho do objeto é distribuído diretamente na velhiceOutro caso em que a nova geração usa Parallel Scavenge GC é inválido, e outro caso em que é diretamente atribuído na antiguidade é um grande objeto array sem objetos de referência externos no array.
-XX:TLABasteTargetPercentualPercentual de TLAB na área de Eden1%
-XX:+CollectGen0FirstSe o YGC vem primeiro quando o FullGCfalse
-XX:+UseParallelGCGC completo usa MSC paraleloVeja [Parâmetros GC][1]
-XX:+UseParNewGCColocando a nova geração para coletar em paraleloPode ser usado em conjunto com a coleção CMS, JDK 5.0 ou posterior, e a JVM o definirá de acordo com a configuração do sistema, então não há necessidade de definir esse valor novamente
-XX:ParallelGCThreadsO número de roscas para o coletor paraleloEsse valor é melhor configurado igual ao número de processadores, e também é adequado para CMS
-XX:+UsarParaleloVelhoGCO antigo método de coleta de lixo é a Compactação ParalelaEssa é a opção de parâmetro que aparece no JAVA 6
-XX:MaxGCPauseMillisTempo máximo por coleta de resíduos de nova geração (tempo máximo de pausa)Se esse tempo não puder ser atingido, a JVM automaticamente redimensionará a nova geração para atender a esse valor.
-XX:+UseAdaptiveSizePolicySelecione automaticamente o tamanho da nova área de geração e a razão correspondente da área sobreviventeQuando essa opção é definida, o coletor paralelo seleciona automaticamente o tamanho da nova área de geração e a proporção correspondente da área sobrevivente para alcançar o tempo ou frequência de coleta mínima especificado pelo sistema-alvo
-XX:GCTimeRatioDefina o tempo de coleta de lixo como uma porcentagem do tempo de execução do programaA fórmula é 1/(1+n)
-XX:+SaqueAntesDeFullGCProcuro geral completo antes de ligar para o YGCtrue
-XX:+UsarConcMarkSweepGCUse a coleção de memória do CMSApós configurar isso no teste, a configuração de -XX:NewRatio=4 é inválida, e o motivo é desconhecido, então é melhor usar -Xmn para definir o tamanho da nova geração neste momento
-XX:+Pilha AgressivaA tentativa é usar muita memória físicaA otimização do uso de grande memória a longo prazo, que pode verificar recursos computacionais (memória, número de processadores, pelo menos 256MB de memória) é necessária
-XX:CMSFullGCsBeforeCompactationQuantas vezes ocorre compressão de memória?Como o coletor concorrente não comprime e organiza o espaço de memória, ele produzirá "fragmentação" após um período de execução, o que reduz a eficiência da operação
-XX:+CMSParallelRemarkAtivadoPausas de marcador inferior
-XX+UseCMSCompactAtFullCollectionCompressão da velhice quando era FullGCO CMS não move memória, então é muito fácil produzir fragmentação, resultando em memória insuficiente, então a compressão de memória será ativada neste momento. É um bom hábito aumentar esse parâmetro. Pode afetar o desempenho, mas pode eliminar detritos
-XX:+UseCMSInitiatingOccupancyOnlyIniciar a coleta do CMS com inicialização manual de definiçãoO HostSpot está proibido de acionar o CMS GC por conta própria
-XX:CMSInitiatingOcupancyFraction=70A coleta do CMS começa após 70% do lixo ser usado como reciclagem de lixoEsse valor precisa ser definido para atender à seguinte fórmula, CMSInitiatingOccupancyFraction
-XX:CMSInitiatingPermOccupancyFractionConfigure o uso do gerador permanente para disparar quando a proporção for atingida92
-XX:+CMSIncrementalModeDefinido para modo incrementalUso em casos de CPU única
-XX:+CMSClassUnloadingEnabledGC permanente do CMS
-XX:+PrintGCSaída logarítmica do GCIgual a -verbose:gc
-XX:+PrintGCDetailsIbidMais detalhes
-XX:+PrintGCTimeStampsCarimbo de tempo do GC de saídaUse com o parâmetro PrintGC acima, ou escreva algo como -XX:+PrintGC:PrintGCTimeStamps
-XX:+PrintGC:PrintGCTimeStampsPode ser misturado com -XX:+PrintGC -XX:+PrintGCDetails
-XX:+ImprimirGCApplicaçãoTempoParadoTempoO horário em que o programa pausa durante a coleta de lixo impresso. Pode ser misturado com o acimaFormato de saída: Tempo total em que as threads da aplicação foram paradas: 0,0468229 segundos
-XX:+ImprimirGCApplicaçãoTempo ConcorrenteTImprima o tempo de execução ininterrupto do programa antes de cada coleta de lixoPode ser misturado com o acima, forma de saída: Tempo de aplicação: 0,5291524 segundos
-XX:+PrintHeapAtGCImprima informações detalhadas sobre a pilha antes e depois do GC
-Xloggc:nome do arquivoRegistre as informações relevantes do log em um arquivo para análiseFunciona com os poucos acima
-XX:+HistogramaClassImpressaApós pressionar Ctrl+Break no console, imprima as informações da classe
-XX:+HistogramaClassImpressaAntesGCFullGC antes da impressão
-XX:+PrintTLABVeja o uso do espaço TLAB
XX:+PrintTenuringDistributionVeja o limiar para o novo período de sobrevivência após cada GC menor
-EAAtivar asserter asserto
-XprofDiagnóstico de desempenho
-XrunhprofDiagnóstico de desempenho
-XX:+TraceClassLoadingImprime informações sobre o processo de carregamento da classeSemelhante a [Carregado java.util.AbstractList$Itr de /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/rt.jar]
-XX:+TraceClassUnloadingInformações sobre o processo de desinstalação da classe de impressão
XbootclasspathEspecifica o carregamento de classes que não exigem verificaçõesPular as verificações necessárias antes da carga pode reduzir o tempo de carregamento, mas não é seguro
-XX:+CompilaçãoImpressaImprima o nome do método que o Hotspot compila usando JIT
-XX:+HeapDumpEmEmErroDeMemóriaNãoDelaMemóriaOM ao gerar um dump de heapA saída padrão está na pasta raiz onde os arquivos de classe são armazenados
-XX:CaminhoDumpDeMonteDefina o caminho do arquivo de despejo OM de saídaUse com -XX:+HeapDumpOnOutOfMemoryError

Apêndice

[Folha de parâmetros padrão de VM]

Nome do parâmetrodescriçãoInadimplência
-d32Use um modelo de dados de 32 bits (se disponível)
-d64Use um modelo de dados de 64 bits (se disponível)
-servidorSelecione a VM do servidorA VM padrão é servidor porque você está rodando em uma máquina parecida com servidor.
-cp diretório < e caminho de busca de classe zip/jar >
-classpath < o caminho de busca de classes para diretórios e arquivos zip/jar >Use: uma lista de diretórios separados, arquivos JAR e arquivos ZIP para buscar arquivos de classes
-D<名称>=<值>Propriedades do sistema de conjuntos
-verboso: [turma ou GC ou JNI]Habilitar a saída detalhada
-VersãoSaída da versão do produto e saída
-<值>versão:Descontinuado
-versão de exibiçãoSaia a versão do produto e continue
-jre-restring-search ou -no-jre-restrict-searchDescontinuado
-? -AjudaEmita esta mensagem de ajuda
-XAjuda de saída com opções não padrão
-EA[:< nome do pacote, nome da turma>]assert
-enableassertion[:< nome do pacote, nome da classe>]Permitir asserções na granularidade especificada
-da[:< nome do pacote, nome da turma>]
-disableassertion[:< nome do pacote, nome da turma>]Desabilite asserções com granularidade especificada
-ESA ou -enablesystemassertionsPermitir asserções do sistema
-DSA ou -disablesystemassertionsDesativar asserções do sistema
-agentlib:<libname>[=<选项>]Carregue a biblioteca <libname>de agentes nativosPor exemplo, -agentlib:hprofVeja também -agentlib:jdwp=help e -agentlib:hprof=help
-agentpath:<pathname>[=<选项>]Carregue a biblioteca do agente local pelo nome completo do caminho
-javaagent:<jarpath>[=<选项>]Para carregar o agente da linguagem de programação Java, veja java.lang.instrument
-Splash:<imagepath>Exiba a tela inicial com a imagem especificada






Anterior:A Nuget Série 1 usa asp.net para construir um repositório Nuget privado
Próximo:Mysql CURRENT_TIMESTAMP e ON UPDATE CURRENT_TIMESTAMP diferenciados
 Senhorio| Postado em 13-01-2022 09:50:32 |


Nota: -Xms256m -Xmx1536m não pode ser colocado após o parâmetro jar!
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com