SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
TDC 2012 - Trilha iOS
José Renato Pequeno
Gerenciamento de Memória
ARC
&
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Zé Pequeno
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Cidade de Deus
Zé 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
dos aplicativos ar mazena dos na m emór ia de
armazenamento.
Saturday, July 14, 12
TDC 2012 - Trilha iOS
Memó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/
jrpequeno@hotmail.com
www.quaddro.com.br www.soaexpert.com.br
www.impacta.com.br
Saturday, July 14, 12

Más contenido relacionado

Más de José Renato Pequeno

Arquitetura orientada a serviços (soa) e modelo de maturidade soa aberto (o...
Arquitetura orientada a serviços (soa)  e modelo de maturidade soa aberto (o...Arquitetura orientada a serviços (soa)  e modelo de maturidade soa aberto (o...
Arquitetura orientada a serviços (soa) e modelo de maturidade soa aberto (o...José Renato Pequeno
 
Explorando os principais implementadores hadoop e o papel que eles exercem no...
Explorando os principais implementadores hadoop e o papel que eles exercem no...Explorando os principais implementadores hadoop e o papel que eles exercem no...
Explorando os principais implementadores hadoop e o papel que eles exercem no...José Renato Pequeno
 

Más de José Renato Pequeno (6)

Arquitetura orientada a serviços (soa) e modelo de maturidade soa aberto (o...
Arquitetura orientada a serviços (soa)  e modelo de maturidade soa aberto (o...Arquitetura orientada a serviços (soa)  e modelo de maturidade soa aberto (o...
Arquitetura orientada a serviços (soa) e modelo de maturidade soa aberto (o...
 
Explorando os principais implementadores hadoop e o papel que eles exercem no...
Explorando os principais implementadores hadoop e o papel que eles exercem no...Explorando os principais implementadores hadoop e o papel que eles exercem no...
Explorando os principais implementadores hadoop e o papel que eles exercem no...
 
Functional Programming - Scala
Functional Programming - ScalaFunctional Programming - Scala
Functional Programming - Scala
 
Big Data, JVM e Redes Sociais
Big Data, JVM e Redes SociaisBig Data, JVM e Redes Sociais
Big Data, JVM e Redes Sociais
 
Apresentação Hadoop
Apresentação HadoopApresentação Hadoop
Apresentação Hadoop
 
Android Studio
Android StudioAndroid Studio
Android Studio
 

Tdc 2012 - Apresentação da trilha iOS

  • 1. TDC 2012 - Trilha iOS José Renato Pequeno Gerenciamento de Memória ARC & Saturday, July 14, 12
  • 2. TDC 2012 - Trilha iOS Zé Pequeno Saturday, July 14, 12
  • 3. TDC 2012 - Trilha iOS Cidade de Deus Zé Pequeno Saturday, July 14, 12
  • 4. TDC 2012 - Trilha iOS Memória de execução Memórias Memória de armazenamento Saturday, July 14, 12
  • 5. 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
  • 6. 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
  • 7. 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 dos aplicativos ar mazena dos na m emór ia de armazenamento. Saturday, July 14, 12
  • 8. TDC 2012 - Trilha iOS Memó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
  • 9. TDC 2012 - Trilha iOS Memory Management Manual Reference Counting / Manual Retain Release Automatic Reference Counting Saturday, July 14, 12
  • 10. 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
  • 11. 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
  • 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. TDC 2012 - Trilha iOS Obrigado @javalittle http://br.linkedin.com/pub/josé-renato- pequeno/28/524/244 http://javalittle.blogspot.com.br/ jrpequeno@hotmail.com www.quaddro.com.br www.soaexpert.com.br www.impacta.com.br Saturday, July 14, 12