Программирование [Дмитрий Виноградов] Производительность (STARTANDROID) (2018)

Moderator
29 Мар 2020
275,065
1,125,091
113
Голосов: 0
#1
img-png.27326

[Дмитрий Виноградов] Производительность (STARTANDROID) (2018)

Предыстория

На DroidCon 17 Berlin мне довелось послушать про новый Android Profiler. Докладчик из Google рассказывал о новых удобных инструментах, доступных разработчикам для мониторинга сетевых запросов, потребления памяти и использования процессора. Это был очень полезный и интересный доклад, и, слушая его, я понял, что тема очень важная, и о ней надо обязательно рассказать.

О чем будет этот курс

Для большинства разработчиков производительность - это последнее, чем они будут заниматься в процессе разработки приложения. О производительности обычно вспоминают, когда она становится реальной проблемой, от которой уже никак не получается отмахнуться.

Но пользователи замечают признаки плохой производительности приложения гораздо лучше, чем новые фичи. Наиболее распространенная причина плохих отзывов на маркете - это плохая производительность и баги. Поэтому очень важно уделять внимание скорости и эффективности работы приложения.

В этом курсе мы подробно разберем доступные нам инструменты для поиска проблем производительности. Научимся пользоваться ими и понимать данные, которые они нам предоставляют. Более подробно об этом вы можете прочитать в первом бесплатном уроке.

Какую пользу принесут вам эти знания?

С большой вероятностью на вашем текущем проекте вы сможете стать единоличным гуру производительности, т.к. мало кто из разработчиков всерьез интересуется этой темой.

В ваше резюме можно будет добавлять пункт Application Performance, а на собеседованиях вы будете рассказывать о том, как на текущем проекте вы нашли и пофиксили множество мемори ликов, ускорили старт приложения в два раза и избавились от тормозов при скролле списка. При этом вы сможете подробно описать, какие именно действия вы предпринимали и какие инструменты использовали. Все это будет вам огромным плюсом в глазах будущего работодателя.

Пару раз меня на собеседовании спрашивали, какие я знаю инструменты для выявления проблем производительности. А также просили перечислить правила оптимизации, которых я придерживаюсь при создании приложений.

Ну и в целом, производительность - это интересная тема. Можно увидеть работу приложения изнутри. Например - подробный стек вызова методов с указанием, сколько времени выполнялся каждый метод. Или содержимое памяти приложения - какие там сейчас есть объекты, и кто на кого держит ссылку. Или все сетевые запросы с указанием их содержания, стека вызова и потока.

Содержание курса

Урок 1. Введение

В этом уроке поговорим о том, почему для приложения очень важна производительность, и обсудим общую схему поиска и устранения проблем. Я опишу пару случаев из моей практики и расскажу, о чем будет этот курс.

Урок 2. Советы по производительности

В этом уроке рассмотрим несколько общих и универсальных советов по производительности.

Урок 3. StrictMode.

В этом уроке рассмотрим возможности StrictMode. Разберем, как узнать, что в UI потоке выполняются операции с диском или сетью.

Урок 4. Память.

В этом уроке обсуждаем память: на что она расходуется, что такое Garbage Collector, как программно узнать количество свободной памяти. А также разберем режим Low memory и метод onTrimMemory, в котором система просит нас освободить память.

Урок 5. Memory Profiler. Allocation.

В этом уроке разбираемся, как с помощью Memory Profiler получить подробную информацию о создании новых и удалении старых объектов.

Урок 6. Memory Profiler. Dump.

В этом уроке рассмотрим как создать Memory Dump, и подробно разберемся, как читать его содержимое.

Урок 7. Утечки памяти. Что это такое и как образуется.

В этом уроке узнаем, что такое утечка памяти, и на примерах подробно рассмотрим, как она образуется. Кроме этого обсудим такие понятия как слабая ссылка WeakReference, Anonymous class и скрытая ссылка.

Урок 8. Утечки памяти. Как понять, что она есть, и как ее найти.

В этом уроке рассмотрим, как определить, что в приложении есть утечка памяти, и как ее найти.

Урок 9. Утечки памяти. LeakCanary.

В этом уроке мы рассматриваем инструмент LeakCanary: как его использовать, как читать и понимать результаты его работы. Кроме этого изучим возможности кастомизации и разберем несколько реальных примеров ликов.

Урок 10. CPU Profiler.

В этом уроке начинаем работу с CPU профайлером. Рассмотрим, какую информацию отображает его основной экран.

Урок 11. CPU Profiler. Стек методов.

В этом уроке рассмотрим доступные нам представления стека методов: Chart, Flame Chart, Top Down, Bottom Up.

Урок 12. CPU Profiler. Режимы записи стека методов.

В этом уроке рассмотрим доступные нам возможности записи стека методов.

Продажник:

Для просмотра содержимого вам необходимо авторизоваться





Скачать:



Для просмотра содержимого вам необходимо авторизоваться
 
Последнее редактирование модератором: