Russian 字幕

← 04-06 Spotting_Leaks_In_Memory_Monitor

04-06 Spotting_Leaks_In_Memory_Monitor

埋め込みコードを取得する
13言語

Showing Revision 2 created 01/25/2016 by sp16.

  1. Итак,
    давайте поговорим об утечках памяти.
  2. Утечки памяти могут быть очень хитрыми.
  3. Они могут медленно и коварно проявляться.
    Иногда проходит несколько дней
  4. или даже недель прежде чем вы заметите
    одну из них.
  5. Вы можете осознать, что с памятью что-то
    не так только тогда, когда пользователи
  6. начнут жаловаться на замедление работы
    после использования вашего приложения.
  7. Не позволяйте, чтобы это происходило.
  8. К счастью, используя некоторое терпение,
    грамотный подход и правильные инструменты
  9. вы сможете избавиться от появления
    таких утечек в вашем приложении.
  10. Воспользуемся средством Memory Monitor
    для контроля поведения утечки в действии,
  11. а в следующем видео мы используем Heap
    Viewer, чтобы подтвердить нашу догадку.
  12. Рассмотрим небольшой пример того,
    как может выглядеть утечка, и посмотрим,
  13. как инструменты SDK могут помочь нам
    её идентифицировать.
  14. В этом примере мы будем поворачивать
    устройство в течение нескольких минут,
  15. одновременно рассматривая его профиль
    в Memory Monitor.
  16. Такой сценарий покажет часто встречающуюся
    ситуацию с утечками,
  17. которые возникают при создании и удалении
    объекта Activity.
  18. Мы можем намеренно запустить этот цикл,
    меняя ориентацию устройства.
  19. Да, я понимаю,
    что это может показаться странным,
  20. но мы сделаем это, чтобы показать,
    как может появиться утечка,
  21. и продемонстрировать, что они могут быть
    медленными и коварными.
  22. Итак, в первом проходе утечка медленно
    поглощает имеющуюся свободную память
  23. до тех пор, пока это не вызовет
    инициацию события сборки мусора.
  24. Но что важно отметить,
    сборщик мусора не может
  25. вернуть такое же количество ресурсов
    из-за имеющейся утечки в приложении.
  26. И это приводит к тому,
  27. что второе событие СМ инициируется намного
    быстрее — примерно через 30 секунд.
  28. Теперь заметьте, что когда утечка
    поглощает весь доступный объем памяти,
  29. Android проводит корректировку и
    выделяет приложению больший объём памяти.
  30. Корректировка со стороны системы сама по
    себе хороша, но если не устранить утечку,
  31. память будет поглощаться до тех пор, пока
    система уже не сможет больше её выделять.
  32. Это приведет к снижению
    производительности устройства,
  33. и в конечном итоге к отказу приложения.
  34. Можно подождать ещё,
    и произойдет третье событие СМ.
  35. А затем и четвёртое,
    подобное предыдущим.
  36. Как вы можете видеть,
    эта схема повторяется,
  37. и система выделяет всё больше памяти.
  38. Подобное же поведение можно наблюдать
    и в Heap Viewer.