A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Garbage Collection O que é Garbage Collector? É o coletor de lixo que é utilizado pela JVM para a limpeza da memória.

Apresentações semelhantes


Apresentação em tema: "Garbage Collection O que é Garbage Collector? É o coletor de lixo que é utilizado pela JVM para a limpeza da memória."— Transcrição da apresentação:

1 http://www.jeandervall.wordpress.com Garbage Collection O que é Garbage Collector? É o coletor de lixo que é utilizado pela JVM para a limpeza da memória. Não se pode prever quando o mesmo será executado, porém, pode solicitar explicitamente (através do método System.gc();) a ação do garbage colector, o qual não necessariamente será executado no momento da solicitação.

2 http://www.jeandervall.wordpress.com Garbage Collection Como Funciona? O Coletor de lixo funciona da seguinte forma: de tempos em tempos, o garbage colector ( quando acionado pela JVM) verifica se todos os objetos alocados na memória estão sendo referenciados por alguma variável, caso não estejam, o mesmo remove o objeto da memória para que o espaço possa ser reutilizado.

3 http://www.jeandervall.wordpress.com Garbage Collection Código Para Constatação public class Lixo{ public static void main(String[] args) throws Exception { int cont=0; int[] array = null; while(true) { array = new int[1000]; System.out.println("Bytes livres: "+Runtime.getRuntime().freeMemory()); Thread.sleep(200); cont++; if(cont==100){ break; }

4 http://www.jeandervall.wordpress.com Garbage Collection O que aconteceu? Bytes livres: 1703304 Bytes livres: 1699288 Bytes livres: 1606024 Bytes livres: 1591520 Bytes livres: 1510304 Bytes livres: 1908872 Bytes livres: 1892808

5 http://www.jeandervall.wordpress.com Garbage Collection As vantagens # liberdade do programador que não esta mais obrigado a ficar atento a detalhes de memória; # há menos bugs de gerenciamento de memória; # gerenciamento automático é mais eficiente que o manual.

6 http://www.jeandervall.wordpress.com Garbage Collection Desvantagens: # O desenvolvedor tende a estar mais desatento em relação a detalhes de memória; # O gerenciador automático apresenta limitações. # O processo reduz o desempenho do aplicativo

7 http://www.jeandervall.wordpress.com Garbage Collection Código com solicitação da reciclagem de memória //... while(true) { //... if(cont==50){ System.out.println("\n Solicitando...\n"); System.gc(); } if(cont==168){ System.out.println("\n garbage colector acionado pela JVM...\n"); } //... }

8 http://www.jeandervall.wordpress.com Garbage Collection Resultado solicitando... coletor acionado pela JVM Bytes livres: 1871664 Bytes livres: 1910032 Bytes livres: 1402408 Bytes livres: 1810528 Bytes livres: 1897984 Bytes livres: 1398392 Bytes livres: 1792008 Bytes livres: 1798752 Bytes livres: 1907928 Bytes livres: 1696288 Bytes livres: 1692072 Bytes livres: 1899896 Bytes livres: 1596856 Bytes livres: 1406424

9 http://www.jeandervall.wordpress.com Garbage Collection O método finalize O método finalize() é chamado pelo coletor de lixo para realizar limpeza de terminação sobre um objeto um pouco antes de o coletor de lixo reivindicar a memória do objeto. Um problema com relação a este método é que não há garantias de o coletor de lixo executar em um momento pré definido.

10 http://www.jeandervall.wordpress.com Garbage Collection Conclusão Em informática poucas vezes uma solução não cria novos problemas. Isto é, o garbage collector é um processo relativamente demorado e de alta prioridade que tem impacto em todo o programa que esta sendo executado. Este processo é automático (promovido pela jvm), mas o programador pode solicitar a atuação do mesmo através do comando System.gc(). Obs.: Não será necessariamente executado no momento da solicitação.

11 http://www.jeandervall.wordpress.com Garbage Collection Bibliografia #Java Como programar 6ª edição # Estrutura de dados e Algoritmos em Java 4ª Edição # Foruns e Pesquisas na internet


Carregar ppt "Garbage Collection O que é Garbage Collector? É o coletor de lixo que é utilizado pela JVM para a limpeza da memória."

Apresentações semelhantes


Anúncios Google