Разработка ждёт балета
1.65K subscribers
515 photos
5 videos
15 files
1.56K links
What I cannot create, I do not understand.

DM: @alexey_mileev
PeerLab: https://xn--r1a.website/+e2ND1tAa0lU2ZTli
Download Telegram
И вот еще совсем коротенькая новость (свежесть: две недели): в Firebase Realtime Database завезли профайлинг. Пис 👌🏻

#firebase #performance
https://firebase.googleblog.com/2017/03/profiling-your-realtime-database.html
Возможно, это баян, который дошел до меня с лютейшим опазданием, но все рано лови. Автор описывает, как он улучшил производительность скролла (не обращай внимания на ListView, оно и для RecyclerView вполне релевантно), просто заранее обрезав текст, который не влезал в ширину. Это, разумеется, не очень частый случай, но все таки полезно иметь в виду. Пис 👋🏻

#android #textview #performance
http://martinadamek.com/2011/01/04/performance-of-android-listview-containing-textviews/
Тут наверное нужно что-то сказать про розовые очки, но мне ничего не приходит на ум. Поэтому просто держи три статьи про, скажем так, неявные эффекты при использовании Kotlin. Там все в основном про количество методов, дополнительные вызовы, приведение типов и аллокации. Однако, есть всё-таки несколько интересных моментов по делегатам в третьей части.

#kotlin #performance
https://medium.com/@BladeCoder/exploring-kotlins-hidden-costs-part-1-fbb9935d9b62
https://medium.com/@BladeCoder/exploring-kotlins-hidden-costs-part-2-324a4a50b70
https://medium.com/@BladeCoder/exploring-kotlins-hidden-costs-part-3-3bf6e0dbf0a4
Какое-то время назад посмотрел этот доклад от Oleksandr Tolstykh про тюнинг производительности RecyclerView и надёргал интересных слайдов. А-ля шпаргалка. Сейчас наткнулся на это безобразие в заметках и решил собрать вместе в виде мини поста. Многое из этого наверное баян, но вдруг ты не видел. Доклад, кстати, очень хорош. Советую посмотреть.

#talk #recycler #performance
http://telegra.ph/RecyclerView-Performance-Tuning-by-Oleksandr-Tolstykh-10-13
https://youtu.be/QjFa5dEzh28
Ребята из Uber показали свой доморощенный method tracing tool. И вот знаете, с одной стороны, богатая идея, а с другой, немножко пугает: они решили измерять с уровня системы, т.е. их тул это форк AOSP, который умеет бенчмаркать. Такие дела.

#performance #benchmarks #methodtracing
https://eng.uber.com/nanoscope
В видео по ссылке рассказывают, что нового в ART в Android P:
1. Оптимизации компилятора для Kotlin (например, inline null-checks для non-null параметров)
2. CompactDex - штука, которая почикает Dex-файлы прямо на девайсе. Умеет: deduplicate and shrink code items, deduplicate multidex data, incorporate profile based Dex layout optimization (сложить методы, которые дёргаются часто или на старте в одно место в памяти)
3. На Nougat появились code profiles - во время выполнения аппа проверяется, какой код и когда выполняется и применяются соответствующие оптимизации. На Android P пошли дальше: появляется cloud profiles - данные о выполнении вашего кода загружаются в облако и оттуда прилетают другим юзерам. То есть если на Nougat чем чаще апп использовался, тем лучше работал, то на Android P ребята из Google хотят добиться оптимальной производительности сразу после установки, как раз благодаря cloud profiles. А теперь гениальная идея из их доклада: берём 1%-2% юзеров из alpha и beta каналов, они используют апп, а потом на всех юзеров уже раскатывается апп, для которого собраны все profiles и апп сразу работает оптимально. Любо!

#kotlin #art #performance #optimize
https://youtu.be/Yi9-BqUxsno
Просто интересная находка: статья от Romain Guy из ранних времён Android про некоторые оптимизации рисования background’ов.

#view #performance
http://www.curious-creature.com/2009/03/04/speed-up-your-android-ui/
Мда… Давненько я сюда ничего не писал. Извиняюсь, в последнее время всё как-то кувырком, совсем не было времени.
Сегодня будет статья с хорошим разбором priority buckets в Android P. Суть в том, что теперь приложения получают разные возможности (на Jobs, Alarms, FCM уведомления и на доступ в сеть) в зависимости от паттерна их использования (запущен ли апп, foreground сервисы, sync adapter и т.п. и как часто пользователь приложение запускает). А подробности, как и всегда, найдёшь по ссылке.

#androidp #battery #performance
https://medium.com/google-developer-experts/exploring-android-p-priority-buckets-d34d12059d36
Сказ о том, как улучшить переиспользование OkHttp соединений, добавив реализацию .equals в SSLSocketFactory, и заодно переиспользуя их инстансы.
 
#okhttp #network #performance
Небольшой гайд по профайлингу main thread событий через Perfetto. Я про этот Perfetto только на прошлой неделе услышал, до этого не встречался и ещё потыкать не успел, но, глядя на положение дел в Studio, чую, там может быть лучше.

#profiler #performance
Два прямо неплохих поста из Lyft о том, как следить за потреблением CPU и памяти прямо в проде.

#performance #cpu #memory
👍11🤮1
На Android Developers появился набор советов о том, как ускорить работу с SQLite. Выглядит здорово! Жаль, что его там не было раньше.

#sqlite #db #performance
👍7🔥1🥱1
Хороший пост про четыре основных подхода к оптимизации и грабли, на которые в них можно наступить.

#optimize #performance
В Go поработали над трэйсингом:
- Меньше оверхед. Сильно меньше
- Трэйс теперь можно разбивать на куски
- За счёт разбития трэйса на куски, теперь вполне можно flight record'ить наживую
- Ну и API, чтобы парсить трэйсы чуть более удобно
Ну кайф!

#go #performance #trace
👍1🔥1
Помните подход, который Кармак описывал, когда в коде ставится assert на размер коллекции, чтобы при изменении внешних условий можно было обнаружить старое предположение и перепроверить алгоритм на адекватность в новой ситуации? Тут вот та же по сути идея, только в более глобальном контексте: Always set a limit to the size of the entities your product consumes.

#programming #performance
👍2