Spanish subtitles

← 04-04 Memory_Leaks

04-04 Memory_Leaks

Get Embed Code
13 Languages

Showing Revision 6 created 02/13/2016 by QA_SP_6_SP.

  1. Una de las mejores cosas
    del lenguaje Java de Android
  2. es que es un ambiente
    de memoria administrada
  3. es decir, no hay que ser súper cuidadoso
    con la creación o destrucción de objetos.
  4. Si bien esto es genial,
  5. hay algunos problemas de desempeño
    acechando bajo la superficie.
  6. Recuerda que las pilas de memoria
    en los tiempos de ejecución de Android
  7. están segmentadas en espacios
    basado en el tipo de asignación
  8. y en cómo el sistema organiza mejor
    las asignaciones para eventos GC futuros.
  9. Y cada espacio tiene su propio
    tamaño de memoria reservada.
  10. Cuando el tamaño combinado
    de un objeto en un espacio
  11. se acerca al límite máximo
    se inicia un recolector de basura
  12. para liberar espacio y eliminar
    objetos innecesarios.
  13. Éstos eventos GC generalmente no son
    un problema de desempeño perceptible.
  14. Pero, muchos de ellos
    ocurriendo una y otra vez
  15. pueden terminar consumiendo
    todo tu tiempo de recuadro.
  16. Mientras más tiempo pasas con los GC
  17. menos tiempo tendrás para otras cosas,
    como renderizar o transmitir audio.
  18. Una situación común en la cual
    caen muchos desarrolladores, que causa
  19. que causa que ocurran GC
    se conoce como fuga de memoria.
  20. Las fugas de memoria son objetos
    que la aplicación ya no utiliza
  21. pero que el recolector de basura
    no reconoce como "sin utilizar".
  22. El resultado es que permanecen
    residiendo en la pila,
  23. ocupando espacio valioso
    que no se libera para otros objetos.
  24. A medida que se fuga memoria,
  25. el espacio disponible en la generación
    de la pila va disminuyendo
  26. más y más, lo que implica que habrá
    más GC ejecutándose con más frecuencia
  27. para tratar de liberar espacio para
    ejecutar normalmente los programas.
  28. El encontrar y reparar fugas de memoria
    es cosa complicada.
  29. Algunas fugas se crean fácilmente,
  30. como al hacer referencias circulares
    a objetos que el programa no utiliza.
  31. Mientras que otros no son tan simples,
  32. como el mantener objetos cargadores
    de clase mientras se cargan.
  33. En todo caso, una aplicación rápida
    y que se ejecuta con fluidez
  34. debe estar consciente y ser sensible
    ante posibles de memoria.
  35. Porque tu código se va a ejecutar
    en un universo de dispositivos
  36. de diferentes tipos
  37. y no todos van a tener el mismo tamaño
    y consumo de memoria.
  38. Por suerte, hay una sencilla herramienta
    que nos ayudará a detectar
  39. si existen fugas, dentro del kit SDK
    de Android.
  40. Veamos.