YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Portuguese, Brazilian subtitles

← 04-04 Memory_Leaks

04-04 Memory_Leaks

Get Embed Code
13 Languages

Showing Revision 6 created 02/15/2016 by sp8.

  1. Uma das melhores coisas sobre a Linguagem
    Java do Android é que ele é um ambiente
  2. de memória gerenciado, ou seja você não
    tem de ser super cuidadoso com o manuseio
  3. quando objetos são criados ou destruídos.
  4. Apesar de isso geralmente ser ótimo,
  5. há alguns problemas de desempenho
    escondidos que estão à espreita.
  6. Se lembre,
    as pilhas de memória nos Android runtimes
  7. estão segmentados em espaços,
    com base no tipo de alocação e na
  8. melhor forma que o sistema pode organizar
    as alocações para futuros eventos GC.
  9. E cada espaço tem
    seu próprio tamanho de memória reservado.
  10. Quando o tamanho combinado de um objeto em
    um espaço começa a se aproximar do seu
  11. limite superior, um evento de coleção de
    lixo é iniciado para liberar espaço
  12. e remover objetos desnecessários.
  13. Estes eventos GC geralmente não são um
    problema perceptível para seu desempenho.
  14. No entanto, muitos deles recorrentes
    uma e outra e outra vez
  15. pode rapidamente consumir
    todo o seu tempo disponível.
  16. Quanto mais tempo você gasta com GCs,
  17. menos tempo tem para fazer outras coisas
    como renderização ou streaming de áudio.
  18. Uma situação comum que os desenvolvedores
    podem ter que causa muitos destes
  19. GCs a ocorrer é
    conhecido como memory leaks.
  20. Memory leaks são objetos que
    que o aplicativo não está usando mais
  21. mas o coletor de lixo falha ao
    reconhecer que são não-utilizados.
  22. O resultado é que eles
    permanecem em sua pilha,
  23. ocupando espaço valioso
    que nunca é liberado para outros objetos.
  24. Enquanto continua a ter memory leaks,
  25. o espaço disponível na geração
    da sua pilha continua a diminuir
  26. e diminuir e diminuir, o que significa
    que mais GCs serão executados mais vezes
  27. para tentar liberar espaço
    para a execução normal do programa.
  28. Encontrar e reparar leaks
    é um negócio complicado.
  29. Alguns leaks são muito fáceis de criar,
  30. como fazer referências circulares para
    objetos que o programa não está usando.
  31. Enquanto outros não são tão simples,
  32. como tratar handles para class loader
    objects enquanto são carregados.
  33. Em qualquer caso, um aplicativo rápido
    e que funciona bem precisa estar ciente
  34. e sensível a memory leaks
    que possam existir.
  35. Quero dizer, o seu código vai estar
    rodando em diferentes dispositivos
  36. de diferentes tipos
  37. e nem todos eles vão ter
    o mesmo tipo e tamanho de memória.
  38. Felizmente, há uma ferramenta simples
    que está disponível para nos ajudar quando
  39. estes leaks possam existir
    no Android SDK.
  40. Vamos dar uma olhada.