GC & compreensão de alocação de memória JVM

A coleta de lixo

  • Objeto algoritmo de decisão sobreviveu
  • algoritmo de coleta de lixo
  • HotSpot algoritmo e o coletor de lixo
  • estratégias de alocação de memória e recuperação
    1.  Objetos algoritmo de determinação de sobrevivência (JVM reciclar esses objetos)

  O conceito: quatro tipos de tipos de referência

  •  Citar forte: a falta de memória oportuna não será GC, não é livre para recuperar forte referência ao objeto; ainda joga OOM (OutOfMemoryError), não será livre para recuperar objetos de referência fortes
  •  Citar Soft: Apenas para fora da memória, será GC; falta de memória recuperado irá lançar uma exceção OOM
  •  referências fracas: Se a adequação da memória atual será GC
  •     Falsa citação: Toda vez que vai fazer GC

  . Um algoritmo de contagem de referência: adicionar uma referência para o objeto de contador, sempre que uma referência ao local de seu tempo é incrementado quando há falha dos decréscimos de referência; qualquer momento o contador 0 do objeto não pode ser usado

  (Mas porque ele não poderia resolver referência circular mútua problema, não é usado por JVM corrente principal)

  . Análise b acessibilidade: GC RAIZ] a [o objecto como um ponto de partida, para iniciar a pesquisa a partir do nó para baixo, chamado procura de caminho percorrido cadeia de referências , quando um objecto de GC RAIZ quando ninguém qualquer cadeia de referência, em seguida, o objeto não está disponível.

Ele pode ser usado como um objecto de GC ROOT

  • Alvo referências virtuais pilha máquina, refere-se principalmente ao quadro de pilha variável local
  • pilhas método nativo de objetos referenciados pelo Método Native
  • Método estático objeto de classe propriedade referenciada por região
  • Método objecto de referência constante zona

Note-se que: sendo julgado objetos inacessíveis não pode realmente ser condenado à morte pelo método de análise acessibilidade, pelo menos duas vezes para passar pelo processo de etiquetagem, para determinar se o objeto é necessário realizar uma finalize (), se for determinado, se necessário, também será a realização de um rastreio, se o objectivo é o de estabelecer uma relação com quaisquer referências de objeto na cadeia, ele será removido "irá recuperar" no finalize () em conjuntos

 

 

 

 

 

 

    2. algoritmos de coleta de lixo (JVM introduzem reciclagem como esses objetos)

      a. algoritmo de coleta de gerações (um algoritmo é usado atualmente em máquina virtual comercial)

  • Cenozóico: um grande número de objetos mortos, apenas alguns sobreviver. Use "algoritmo de replicação", apenas uma pequena quantidade de objetos ao vivo pode ser copiado
  •    anos de idade: alta taxa de sobrevivência do objeto . O uso da marca "- algoritmo de limpeza" ou "mark - algoritmo de ordenação", apenas a recuperação menos acentuada do objeto pode ser.

      b. Copie o algoritmo

  • De acordo com a capacidade de memória disponível é dividido em dois iguais, que usa apenas um. Quando uma cópia do que ficar sem memória, mas também a sobrevivência do objeto para outro bloco de memória, uma memória nestes saia limpo.
  • Prós: cada tempo para a recuperação de memória para toda a meia-área, independentemente das circunstâncias, tais como a fragmentação da memória. Enquanto o topo do movimento ponteiro da pilha, de modo a alocar a memória, simples, operação eficiente
  • Desvantagens: cada memória disponível é reduzido para metade o uso original, pouca memória

Estudos têm demonstrado que 98% da nova geração do objeto é para estudantes à noite morto, não é necessário de acordo com a 1: 1 para dividir o espaço de memória, mas o espaço é dividido em um pedaço maior do Éden e dois sobrevivente espaço menor,

No HotSpot Virtual Machine rácio de incumprimento de 8: 1: 1 . Éden e cada vez que você usar um sobrevivente, a recuperação destes dois objetos estão vivos uma vez copiadas para outro pedaço de Survivor, fazer a limpeza. Visível apenas 10% da memória é "desperdício", se sobrevivente espaço insuficiente também precisa confiar em outra memória (anos) garantia alocado.




 

 

 

 

 

       C Limpar lei rotulagem:. Primeiros objetos marca precisa ser recuperado, remova então unificada esses objetos

      Desvantagens: marca, eficiência de remoção não é alta, quando o lixo espacial demais, que irá produzir um grande número de detritos espaciais discreto, poderia levar a uma maior necessidade de alocar objetos na parte de trás, porque eles não conseguem encontrar um grande espaço contínuo no gatilho antecedência outro GC, afetar o desempenho.

 

      . D marca - Collation Algorithm: First "tag" todos os objetos precisam ser recuperados, em seguida, "Atualizar", de modo que o objeto de sobrevivência são movidos para o fim, e, finalmente, limpar a memória diretamente fora do limite do terminal .

      Prós: Isso não desperdiçam 50% do espaço, não há detritos espaciais, o custo mais elevado .

      Em circunstâncias normais, seria optar por anos antiga marca - Collation Algorithm.

 

Acho que você gosta

Origin www.cnblogs.com/9797ch/p/12556345.html
Recomendado
Clasificación