É o java PermGen space parte do total de VM de memória?
-
26-09-2019 - |
Pergunta
Supondo que eu começar a minha máquina virtual java, com os seguintes parâmetros:
-Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m
Fazer o 512m PermGen space adicionar para o 1024m de memória ou são eles parte?Ou, em outras palavras, eu tenho um consumo de memória total de 1536m ou de 1024m?Neste último caso, isso significa que o aplicativo tem apenas 512mb para outros fins que PermGen space?
Por favor, deixe-me saber no caso desta questão revela uma falta de compreensão PermGen space.;-)
Solução
o -Xms
e -Xmx
Parâmetros consulivos heap Memória, enquanto o espaço permgen é um pool de memória separado.
Em outras palavras, o tamanho total da memória disponível para o seu aplicativo Java será de 1,5 gib em vez de 1 gib, e você obterá o gigabyte completo do espaço para objetos alocados por heap.
Outras dicas
Eu apenas cruzei nesta página através do Google.Este é certa confusão se PerGen faz parte da Pilha ou não:A resposta é "Pilha é dividida em pequenas peças/gerações e estas peças são:Uma Geração de jovens, de Idade ou Permanente Geração, e Permanente Geração".Isto é o que a Oracle diz que, para dizer o mínimo.Faz muito mais sentido ir pelo o que o emissor diz do que pelo público no domínio da web.
Uma breve nota sobre PermGen: Permanente geração contém metadados exigidos pela JVM para descrever as classes e os métodos utilizados na aplicação.A permanente geração é preenchido pela JVM em tempo de execução baseado em classes de uso pelo aplicativo.Além disso, o Java SE de uma biblioteca de classes e métodos que podem ser armazenados aqui.
Na JVM da Sun, a geração permanente não faz parte da pilha. É um espaço diferente para definições de classes e dados relacionados, bem como onde as cordas internadas vivem.