Киев, 24 ноября 2012

Memory Analyzer Tool and memory optimization tips in Android

Докладчик: Александр Терещук
Платформа: Android OS
Категория: Разработка приложений
Страна: Украина
Компания: Stanfy

Существует древняя цитата - "Если бы GC в Java действительно работал, то большинство программ удаляли сами себя". К сожалению, на практике это приводит к нежелательным результатам - мы часто на все 100% полагаемся на GC напрочь забывая о качестве кода. Однако "серебряной пули" не существует и за все приходится платить. Но росплачуються за все проблемы именно пользователи - программы ежедневного потребления постоянно "тормозят", "зависают", "вылетают" ...

Основной причиной большинства проблем является именно ошибки при работе с памятью и если на настольных системах это мало заметно, то на мобильной платформе это проблема едва не № 1.

Именно поэтому, мой доклад посвящен этой болезненной, но, к сожалению, мало раскрытой теме. Есть много статей, описывающих работу GC в JVM и средства мониторинга памяти, однако не все они одинаково полезны по отношению к Android платформе, ведь нужно помнить, что прежде всего, Android - это DalvikVM и отнюдь не JavaVM. Наиболее эффективным инструментом для выявления потенциальных проблем с использованием памяти является Memory Analyzer Tool (MAT), который можно использовать, как отдельную программу, так и в качестве плагина для Eclipse. Используя MAT можно легко анализировать дампы памяти (heap dumps), выявлять проблемные места.

Конечно, обнаружить "мемори лик" и его устранить - это две разные вещи. Например, многие фреймворки, в том числе и API Android содержат баги, продуцирующие мемори лики. О таких вещах следует помнить, ведь процент использования 2.х Android еще очень высок. В целом же - у каждой проблемы есть решение и "мемори лики" можно не просто устранять, но и заранее избегать, имея соответствующий опыт, чему, собственно , и будет посвящен доклад.

Видео: