Neste post irei dar uma visão geral a respeito do Garbage Collector a fim de dar uma introdução a próximo tópico em que estarei falando sobre o gerenciamento de memória no IOS 5 e 6. Vamos lá!
A partir da versão 10.5 do Mac OS X (Leopard), introduziu-se o Garbage Collector a fim de facilitar o gerenciamento de memória das aplicações. Esse gerenciador não chegou a ser portado para as plataformas IOS e se tornou depreciado na versão 10.8 (Mountain Lion). Ou seja, não existe motivos para investir no aprendizado do Garbage Collector a não ser que você esteja mirando desenvolver usando o Sistema Operacional Leopard, Snow Leopard ou Lion.
Usando o Garbage Collector, podemos avisar ao compilador os momentos certos para recolhimento do lixo (collectIfNeeded) ou obriga-lo a remover todo o conteúdo que não esta sendo usado (collectExhaustively).
Outra preocupação da ferramenta envolve intensidade da varredura na memória. Para tal, podemos setar a varredura para focar nas variáveis que foram criadas mais recentemente (generational ou local) ou para varrer a memória toda (full).
O Garbage Collector ainda oferece maneiras de se trabalhar com gerenciamento de memória automático para a linguagem C e Core Foundation.
Ao invés de usarmos dealloc, passamos a trabalhar com finalize. O mesmo acontece na chamada do método da classe pai dentro da implementação ([super finalize] ao invés de [super dealloc]). Assim como no Java, não é certo o momento em que o compilador irá chamar o finalize, então esse método não é muito utlizado em aplicações que utilizam o Garbage Collector.
Com relação às propriedades e variáveis, deixamos de lado o retain, release e autorelease, e passamos a chamar strong e weak. Estarei explicando no próximo post como funcionam estes novos estados.
Podemos ter ainda classes que não suportam, exijam ou suportam o Garbage Collector. Para definir tal propriedade, marcamos nas propriedades do projeto as classes que queremos que exijam, aceitem ou não suportem tal funcionalidade. Normalmente, o que define se uma Framework ou classe não suporta Garbage Collector é se a mesma implementa ou não o método finalize.
A classe responsável por dar suporte ao GC é a NSGarbageCollector.
Bem, isso é tudo. No próximo post estaremos vendo o método de gerenciamento de memória automático que veio para substituir o Garbage Collector e o gerenciamento de memória manual para aplicativos Apple tanto para IOS como para Mac OS X.
Nenhum comentário:
Postar um comentário
Obrigado por deixar a sua participação!