Pergunta

Supondo uma JVM de 64 bits, há algum benefício significativo em manter MaxPermSize pequeno?

Isso ocorre no contexto de um aplicativo Java EE que é reimplementado com frequência e apresenta um vazamento no carregador de classe.Como solução alternativa de médio prazo, parece muito razoável aumentar MaxPermSize para um valor absurdo - desde que isso não exploda o espaço de troca do disco.

Como o código do aplicativo não implantado quase não é utilizado (exceto aquele envolvido no vazamento), ele é paginado pelo sistema operacional.Portanto, a carga na memória física causada por detritos não implantados parece insignificante;isso foi verificado observando o RSS (o tamanho do conjunto de trabalho no Unix).

Existem outros efeitos com os quais devo me preocupar?

Foi útil?

Solução

De Perguntas frequentes sobre pontos de acesso JVM

Devo aumentar o tamanho da geração permanente na VM cliente?

Este será sempre um julgamento.Em geral, aumentar o tamanho de uma geração (e isso se aplica não apenas à geração permanente) pode reduzir a incidência de uma ampla variedade de problemas. No entanto, isso pode fazer com que outros processos paginam excessivamente e/ou coletem lixo ou joguem fora do exceções de memória.

Existem dois modos de falha a serem considerados.

Ao aumentar MaxPermSize, é possível que programas anteriormente bem comportados que costumavam coletar lixo para recuperar o espaço de geração permanente morram por paginação infinita.Para a geração permanente isso geralmente só acontece com a internação pesada de strings temporárias.

O outro modo de falha é que o espaço de endereço deve ser reservado para a geração permanente e isso reduzirá o espaço disponível para o restante do heap (o -Xmx máximo pode então ser muito grande).Isso fará com que os programas configurados para usar todo o espaço disponível falhem na inicialização.

Também Este artigo diz :

Então aproveitamos o fato de as classes serem mantidas na geração permanente coletando a geração permanente antes de coletar a geração titular.E a geração permanente atualmente é coletada em série.

Grande geração permanente pode causar maior tempo de GC, eu acho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top