-JVM Java Virtual Machine memória ajuste de introdução

A. A nova geração, tempo velho, nome permanente

A nova geração é dividido em três regiões, uma região Éden e duas áreas do sobrevivente, o rácio entre eles (8: 1: 1), esta relação é para ser modificado. Em circunstâncias normais, o principal objeto é alocado na nova geração da área de Éden, em alguns casos, pode também ser atribuídas directamente na era velho. (Copie aqui, usando a máquina virtual Java cada vez que você usa a nova geração do Éden e onde um sobrevivente (De), depois de um menor GC, Eden e Survivor vai objetos também vive uma vez copiados para um outro pedaço de Survivor espaço algoritmo de GC), finalmente, limpar Éden e apenas espaço passou Survivor (De). Neste momento, a idade do espaço no objeto sobrevivente sobrevivente é definido como 1, depois de cada um desses objetos em algumas áreas do sobrevivente obter através da GC, sua idade incrementado por um, quando o objeto atinge uma certa idade idade (padrão 15), a vamos movê-los para a era antiga.

Na nova geração quando GC, é possível encontrar um outro pedaço de espaço sobrevivente não é espaço suficiente para armazenar uma nova geração de objetos vivos apanhados em baixo, esses objetos vão directamente para o ano velho alocando mecanismo de garantia;
Aqui Insert Picture Descrição

1.Eden Distrito

área Eden está localizada no jovem geração de pilha de Java, onde o novo objeto é alocado memória, porque a pilha é compartilhado por todas as threads, e, portanto, precisam de memória de bloqueio alocado no heap. A Sun JDK para aumentar a eficiência, será atribuído a cada novo segmento em um espaços independentes exclusivo Eden pelo segmento, este espaço é chamado TLAB (Tópico Allocation local Buffer). alocação de memória não precisa bloquear em TLAB, portanto JVM vai tentar alocar em TLAB quando o objeto para alocar segmento de memória. Se o objeto for muito grande ou TLAB correr para fora, ele ainda pode ser alocado no heap. Se você ficar sem memória Eden District irá realizar um menor GC (jovem GC).

2.Survivor a partir de

Survival mesma área e distritos Eden são a nova geração de heap Java. distrito Survival tem dois, um chamado de região para região, como o outro, estas duas zonas é relativo, no caso de um menor GC, depois, de região para região e serão intercambiáveis. No caso de menor GC, área Éden e área Survivalfrom vai colocar alguns objetos ainda vivos copiados para Sobrevivência para a área e limpar a memória. Sobrevivência para alguns da área terá que sobreviver o suficiente idade para objeto para a velha geração.

3. A velha geração

São armazenados na velha geração de tempo de sobrevivência mais longo, o tamanho de objetos grandes, utilize tags para organizar algoritmo de geração de idade. Anos de idade geração de capacidade está cheio, irá desencadear uma GC Major (GC completo), recuperação de recursos objetos velha geração e a geração mais jovem não mais em uso.

Segundo Resumo:

  1. Menor GC está a acontecer na nova geração recolha de lixo, o algoritmo utilizado replicação;
  2. Em cada nova geração de espaço usado é não mais do que 90%, principalmente usado para armazenar objectos recém-nascido;
  3. Menor GC após cada região de recolha e uma área sobrevivente Éden ter sido esvaziado;
  4. de antigas usam de Full GC, utilizando a marca - algoritmo de varredura;

recursos:

Publicado 215 artigos originais · Louvor obteve 135 · Visualizações 1,14 milhão +

Acho que você gosta

Origin blog.csdn.net/weinichendian/article/details/104938929
Recomendado
Clasificación