tdc 2012 - trilha ios -...
TRANSCRIPT
TDC 2012 - Trilha iOS
José Renato Pequeno
Gerenciamento de Memória
ARC
&
Saturday, July 14, 12
TDC 2012 - Trilha iOSZé Pequeno
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Cidade de DeusZé Pequeno
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memória de execução
Memórias
Memória de armazenamento
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memórias
Memória de armazenamento
Utilizada para armazenar aplicativos, imagens, sons.Não são voláteis, ou seja, essa memória, mantém as informações mesmo com o dispositivo desligado ou sem bateria.
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memórias
Memória de armazenamento iPhone & iPad
Os iDevices da Apple possuem atualmente memória de armazenamento com 16, 32 e 64 GB.
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memórias
Memória de execução - RAM
Memória volátil, cara e rápida responsável pela execução do s ap licat i vo s armazena dos na memór ia de armazenamento.
Saturday, July 14, 12
TDC 2012 - Trilha iOSMemórias
Memória de execução - RAM
Embora não seja divulgado pela APPLE, sabe-se que iPhone 4S e o iPad 2, possuem 512 MB de memória RAM.
O iPad 3, possui aproximadamente 1GB.
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memory Management
Manual Reference Counting / Manual Retain Release
Automatic Reference Counting
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memory Management
Manual Reference Counting / Manual Retain Release
Classe NSObject -> Implementa um recurso chamado Reference Counting para o gerenciamento de memória através do uso de mensagens retain e release para o gerenciamento da alocação de memória dos objetos.
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memory Management
Manual Reference Counting
Quando um objeto é criado,
Pessoa *p = [[Pessoa alloc] init];
a mensagem alloc inicia a contagem de referências desse objeto na memória.
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memory Management
Manual Reference Counting
Após a utilização do objeto, deve-se liberá-lo através de uma mensagem release.
Pessoa *p = [[Pessoa alloc] init]; ..... [p release];
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memory Management
Manual Reference Counting
Pessoa *p = [[Pessoa alloc] init]; ..... [p release];
O release, diminui em um a contagem de referência.
Quando a contagem de referência chega a zero, o objeto é desalocado da memória.
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memory Management
Manual Reference Counting
Object Ownership
É o conceito de escopo de acesso a um objeto. Em um programa, um objeto pode ser utilizado por um ou vários agentes de código que passam a possuir o objeto.
Ao possuir um objeto, um agente deve pedir a propriedade desse objeto através de uma mensagem retain.
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memory Management
Manual Reference Counting
Ciclo de Reference Counting de um objeto
. Objeto criado (alloc/new/copy), retain count de 1
. Pode-se pedir a propriedade de um objeto usando o um retain
. Objetos que não são mais utilizados, devem ser liberados através de um release
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memory Management
Manual Reference Counting
Ciclo de Reference Counting de um objeto
. Quando o retain count de um objeto chegar a zero, o objeto é desalocado da memória através do método dealloc.
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memory Management
Manual Reference Counting
Cuidado ao utilizar o release
Pessoa *p = [[Pessoa alloc] init] ... [p release];
... p.nome = @”Zé Pequeno”;
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memory Management
Manual Reference Counting
Autorelease
Pessoa *p = [[Pessoa alloc] init] ... [p autorelease];
... p.nome = @”Zé Pequeno”;
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memory Management
Automatic Reference Counting
Com o Automatic Reference Counting, disponibilizado pela Apple com o iOS 5, o desenvolvedor não precisa mais se preocupar em explicitamente controlar a posse dos objetos através de retain/release.
Ao contrário do que alguns estejam pensando, isso não é o mesmo que o Garbage Collector implementado por outras tecnologias.
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memory Management
Automatic Reference Counting
A utilização do ARC é opcional em um projeto e caso seja utilizado fará com que o código seja analisado em tempo de compilação adicionando-se os necessários retains e releases.
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memory Management
Automatic Reference Counting
É possível fazer a conversão de aplicações criadas com o SDK 4 para o SDK 5 tirando proveito assim da utilização do ARC. No xCode 4.x.x, existe uma ferramenta específica para esta conversão.
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memory Management
Automatic Reference Counting
Para se utilizar o ARC em um projeto, basta no momento de criar o projeto, selecionar a opção
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Obrigado
@javalittle
http://br.linkedin.com/pub/josé-renato-pequeno/28/524/244
http://javalittle.blogspot.com.br/
www.quaddro.com.br www.soaexpert.com.br
www.impacta.com.br
Saturday, July 14, 12