220 likes | 373 Views
GARBAGE COLLECTOR. GARBAGE COLLECTOR. NOME: GUILHERME BOULHOSA GUIMARÃES . email:guilherme.guimaraes@gasparvianna.pa.gov.br NOME: RAIMUNDO MEDEIROS NETO email:netovis.panotec@gmail.com NOME: JOELCIO LUIZ GRAIM FERREIRA email: joelcio.graim@gmail.com NOME: LEONARDO DELA FLORA
E N D
GARBAGE COLLECTOR UNIVERSIDADE FEDERAL DO PARÁ - UFPA
GARBAGE COLLECTOR NOME: GUILHERME BOULHOSA GUIMARÃES. email:guilherme.guimaraes@gasparvianna.pa.gov.br NOME: RAIMUNDO MEDEIROS NETO email:netovis.panotec@gmail.com NOME: JOELCIO LUIZ GRAIM FERREIRA email: joelcio.graim@gmail.com NOME: LEONARDO DELA FLORA email:leo13.cruz@gmail.com NOME: BRUNO GARCIA email:inform.garcia@gmail.com UNIVERSIDADE FEDERAL DO PARÁ - UFPA
INTRODUÇÃO O conceito de garbage collector (GC) nasceu em 1959 por John McCarthy, para resolver problemas do Lisp; A maioria das linguagens modernas de programação é dotada de mecanismos de gerenciamento automático de memória por meio de um GARBAGE COLLECTOR (GB); UNIVERSIDADE FEDERAL DO PARÁ - UFPA
C# Vs. JAVA Em C# o Garbage Collected é manuseado pelo Common Language Runtime (CLR), que possui funcionalidades similares ao do JVM, onde o CLR periodicamente verifica o Heap () de memória a procura de objetos não referenciados; Em Java a JVM cuida e controla a liberação da memória através da API Garbage-Collected; UNIVERSIDADE FEDERAL DO PARÁ - UFPA
GERENCIAMNETO AUTOMÁTICO DE MEMÓRIA Gerenciamento automático de memória é um dos serviços que o Common Language Runtime (CLR) fornece durante a Execução Gerenciada; O Garbage Collector gerencia todo o processo de ciclo de vida dos objetos, visando a melhor manutenção da aplicação e tentando evitar problemas de memory leaks, hangs ou crashes; UNIVERSIDADE FEDERAL DO PARÁ - UFPA
ALOCAÇÃO DE MEMÓRIA Região contígua de espaço de endereço – HEAP Gerenciada; Endereço básico da Heap Gerenciada é um ponteiro; Coletor de Lixo aloca memória no espaço de endereço; Maior velocidade na alocação de memória com Heap Gerenciada; Alocação de memória com Runtime; UNIVERSIDADE FEDERAL DO PARÁ - UFPA
LIBERAÇÃO DE MEMÓRIA O Coletor de lixo determina o melhor momento para executar uma coleta; Ele determina quais objetos não são mais usados pelo exame das raízez do aplicativo; Compilador Just-In-Time (JIT); UNIVERSIDADE FEDERAL DO PARÁ - UFPA
LIBERAÇÃO DE MEMÓRIA Objetos Inacessíveis; Função de copia de memória para compactar os objetos acessíveis; Objetos sobreviventes; Melhor desempenho (Heap separado); UNIVERSIDADE FEDERAL DO PARÁ - UFPA
LIBERAÇÃO DE MEMÓRIA • Antes da Remoção Pilha c=5 data b=2 obj UNIVERSIDADE FEDERAL DO PARÁ - UFPA
LIBERAÇÃO DE MEMÓRIA Processo de análise das Raízes. Pilha c=5 data b=2 obj UNIVERSIDADE FEDERAL DO PARÁ - UFPA
LIBERAÇÃO DE MEMÓRIA Depois da Remoção Pilha c=5 b=2 obj UNIVERSIDADE FEDERAL DO PARÁ - UFPA
GERAÇÕES E DESEMPENHO • Para otimizar o desempenho do coletor de lixo, o heap gerenciado é dividido em três gerações: 0, 1 e 2. • Motivos: • Compactar parte da heap gerenciada. • Objetos mais recentes tem vida úteis menores.
GERAÇÕES E DESEMPENHO Geração 0(zero) armazena os novos objetos. Objetos criados com antecedência no tempo de vida do aplicativo que sobrevivem a coletas são promovidos e armazenados em gerações 1 e 2. Como resultado, o coletor de lixo não tem como reexaminar os objetos em gerações 1 e 2.
GERAÇÕES E DESEMPENHO Funcionamento: Após cada coleta, o coletor de lixo compacta os objetos acessíveis na geração 0 e promove-os para a geração 1. Objetos na geração 1 que sobrevivem a coletas são elevados para a geração 2. Objetos na geração 2 que sobrevivem a uma coleta permanecem na geração 2 até que eles sejam determinados como inalcançáveis em uma coleta futura.
GERAÇÕES E DESEMPENHO Melhor desempenho: Libera memória em uma geração específica em vez de liberar a memória para toda a memória gerenciada a cada vez que ele executa uma coleta.
LiberandoMemóriaparaRecursosnãoGerenciados O coletor de lixo executa automaticamente as tarefas de gerenciamento de memória para maioria dos objetos criados pelo aplicativo; Enquanto que recursos não gerenciados requerem limpeza explícita. Exemplos, são objetos que envolve um recurso do sistema operacional como: identificador de arquivo, identificador de janela ou conexão de rede; UNIVERSIDADE FEDERAL DO PARÁ - UFPA
LiberandoMemóriaparaRecursosnãoGerenciados Embora um objeto gerenciado encapsula um objeto não gerenciado, não tem conhecimento específico para limpar o recurso. Nesse caso é necessário fornecer o código de um método público Dispose; Você deve estar ciente de implementar o método Disposepara liberação explícita de memória; UNIVERSIDADE FEDERAL DO PARÁ - UFPA
CONCLUSÃO A Presença do Garbage Collector na plataforma .NET impulsionou a produtividade no desenvolvimento de aplicações , eximindo os desenvolvedores do compromisso de fazer desalocação explicita de objetos não mais necessários em suas aplicações. UNIVERSIDADE FEDERAL DO PARÁ - UFPA
REFRÊNCIAS http://msdn.microsoft.com/pt-br/library/ms228629(VS.80).aspx http://msdn.microsoft.com/en-us/library/ms973837.aspx http://msdn.microsoft.com/en-us/magazine/bb985010.aspx UNIVERSIDADE FEDERAL DO PARÁ - UFPA
OBRIGADO!!! A EQUIPE AGRADECE PELA ATENÇÃO. UNIVERSIDADE FEDERAL DO PARÁ - UFPA
PERGUNTAS UNIVERSIDADE FEDERAL DO PARÁ - UFPA