A principal pesquisa deste artigo é o conteúdo relevante da explicação detalhada das configurações de sinalizador na JVM, que é introduzida da seguinte forma.
-Xmx3550m: Defina a memória máxima disponível da JVM como 3550M.
-Xms3550m: defina a memória inicial disponível da JVM como 3550M.
-Xmn2g: Defina o tamanho da geração jovem como 2G.
-Xss128k: defina o tamanho da pilha de cada thread como 128k
-Xx: Newsize = 4: Defina o tamanho da geração jovem como 4
-Xx: newratio = 4: defina a proporção da geração jovem (incluindo o Éden e duas áreas de sobreviventes) para a geração antiga (excluindo a geração persistente) para 4, então a proporção da geração jovem para a geração antiga é 1: 4, e a geração jovem de 1/5 de toda a pilha inteira é
-Xx: SurvivorRatio = 4: define a razão de tamanho entre a área do Éden e a área de sobrevivência na geração jovem. Definido como 4, a proporção entre as duas áreas de sobrevivência e uma área de Éden é de 2: 4, e uma área de sobrevivente responde por 1/6 de toda a geração jovem.
-Xx: maxpermsize = 16m: defina o tamanho da geração persistente como 16m.
-Xx: PretenuresizEThResHold = n, objetos maiores que n são colocados diretamente na velhice
-Xx: maxtenuringthreshold = 0: defina a idade máxima do lixo. Se definido como 0, o objeto de geração jovem não passará pela área de sobrevivência e entrará diretamente na geração antiga.
-Xx:+useParalleloldGC: Configure o método de coleta de lixo antigo para a coleta paralela.
Tamanho da pilha inteira = Tamanho da geração jovem + Tamanho da geração antiga + Tamanho da geração persistente.
-Xx:+useSerialGC: defina o coletor serial
-Xx:+useparallelGC: defina o coletor paralelo
-Xx:+useParalledLoldGC: Configure o coletor de geração antiga paralela
-Xx:+useConcmarksweepGC: Configure o colecionador simultâneo
-Xx:+printgc
-Xx:+printgcdetails
-Xx:+printgctimestamps
-Xloggc: nome do arquivo
-Xx: parallelgcthreads = n: defina o número de CPUs usadas ao coletar o coletor paralelo. O número de threads coletados em paralelo.
-Xx: maxgcpauseMillis = n: defina o tempo máximo de pausa para a coleção paralela
-Xx: gctimeratio = n: defina a porcentagem do tempo de coleta de lixo para programar o tempo de execução. A fórmula é 1/(1+n)
-Xx:+cmSincremeMode: defina como modo incremental. É adequado para situações de CPU único.
-Xx: parallelgcthreads = n: defina o número de CPUs usadas quando a geração jovem do coletor simultâneo é a coleta paralela. O número de threads usados na coleção paralela.
Suponha que haja um arquivo chamado testmem.java
javac testmem.java java -verbose: gc -xms20m -xmx20m -xmn10m -xx:+printgcdetails -xx: sobrevivorRatio = 8 testmem
-Xms20m: O tamanho inicial da pilha Java na JVM é de 20m. (Incluindo a nova geração e os idosos)
-Xmx20m: O tamanho máximo da pilha Java na JVM é de 20m, o que significa que não é escalável. (Incluindo a nova geração e os idosos)
-Xmn10m: O tamanho da nova geração é de 10m
-Xx:+printgcdetails: imprimir informações GC detalhadas
-Xx: SurvivorRatio = 8: A proporção espacial de uma área de Enten para uma Sobrevivente na nova geração é de 8: 1, então a proporção de duas áreas de sobrevivência para uma área de Éden é 2: 8, e uma área de sobrevivente responde por 1/10 de toda a geração jovem
Depois de saber as informações do sinalizador acima, podemos obter as seguintes informações:
O tamanho total da pilha Java é 20m = 20 * 1024k = 20480k
O tamanho da geração cecommosa: 10m = 10 * 1024k = 10240k
Eden Space: 10240k * 8/10 = 8192k
do espaço: 10240k * 1/10 = 1024k
para o espaço: 10240k * 1/10 = 1024k
Tamanho da velhice: 20m - 10m = 10m = 10240k
O exposto acima é toda a explicação detalhada das configurações de sinalizador na JVM neste artigo, espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!