11
Finding and Fixing Memory Leaks

Finding and Fixing Memory Leaks (Erick Santos)

Embed Size (px)

Citation preview

Page 1: Finding and Fixing Memory Leaks (Erick Santos)

Finding and Fixing Memory Leaks

Page 2: Finding and Fixing Memory Leaks (Erick Santos)

Sumário

- ARC - O básico- Memory Leak- Meios de encontrar - Como corrigir

Page 3: Finding and Fixing Memory Leaks (Erick Santos)

ARC - O Básico

ARC (Automatic Reference Counting) é responsável pelo gerenciamento de memória.

Permite controlar manualmente ciclos de retenção (retain cycles) por meio de de referências fracas (weak references).

Page 4: Finding and Fixing Memory Leaks (Erick Santos)

ARC - Mas como funciona?

- Cada instância de um tipo de referência possui um contador associado a ela;

- É a quantidade de instâncias associadas a uma variável ou constante;

- Com o contador zerado, a instância é desalocada e a memória disponibilizada.

Page 5: Finding and Fixing Memory Leaks (Erick Santos)

ARC - Retendo Ciclos de Memória

- Duas instâncias referindo-se uma à outra ao mesmo tempo

PARENT

CHILD

STRONG STRONG

Page 6: Finding and Fixing Memory Leaks (Erick Santos)

ARC - Retendo Ciclos de Memória com Blocos

ViewController

self

subview

closure

Page 7: Finding and Fixing Memory Leaks (Erick Santos)

ARC - Retendo Ciclos de Memória com Blocos

Page 8: Finding and Fixing Memory Leaks (Erick Santos)

Memory Leak

- Gerenciamento de memória incorreto, no qual uma alocação na memória que não é mais necessária se mantém retida.

Page 9: Finding and Fixing Memory Leaks (Erick Santos)

Memory Leak - Meios de encontrar

- Instruments- View Memory Graph Hierarchy

Page 10: Finding and Fixing Memory Leaks (Erick Santos)

Erick Vicente

/csericksantos

[email protected]

Page 11: Finding and Fixing Memory Leaks (Erick Santos)

www.concretesolutions.com.br

Ajudamos empresas a criar produtos digitais de sucesso

Belo Horizonte - Av. Getúlio Vargas, 671 8º andar, sala 800 - Savassi - (31) 3360-8900

Rio de Janeiro - Rua São José, 90 - cj. 2121Centro - (21) 2240-2030

São Paulo - Av. Nações Unidas, 11.5413º andar - Brooklin - (11) 4119-0449