И вот еще совсем коротенькая новость (свежесть: две недели): в Firebase Realtime Database завезли профайлинг. Пис 👌🏻
#firebase #performance
https://firebase.googleblog.com/2017/03/profiling-your-realtime-database.html
#firebase #performance
https://firebase.googleblog.com/2017/03/profiling-your-realtime-database.html
The Firebase Blog
Profiling your Realtime Database Performance
The official blog for Firebase, Google's mobile development platform
Возможно, это баян, который дошел до меня с лютейшим опазданием, но все рано лови. Автор описывает, как он улучшил производительность скролла (не обращай внимания на ListView, оно и для RecyclerView вполне релевантно), просто заранее обрезав текст, который не влезал в ширину. Это, разумеется, не очень частый случай, но все таки полезно иметь в виду. Пис 👋🏻
#android #textview #performance
http://martinadamek.com/2011/01/04/performance-of-android-listview-containing-textviews/
#android #textview #performance
http://martinadamek.com/2011/01/04/performance-of-android-listview-containing-textviews/
Martin Adamek
Performance of Android ListView containing TextViews
Few minutes ago I radically improved performance of the ListView scrolling in my application. Problem was not so obvious, so I though it might be worth sharing this tip. Every item in my ListView contains four TextViews. Using Traceview I have found that…
Тут наверное нужно что-то сказать про розовые очки, но мне ничего не приходит на ум. Поэтому просто держи три статьи про, скажем так, неявные эффекты при использовании 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
#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
Medium
Exploring Kotlin’s hidden costs — Part 1
Lambda expressions and companion objects
Какое-то время назад посмотрел этот доклад от Oleksandr Tolstykh про тюнинг производительности RecyclerView и надёргал интересных слайдов. А-ля шпаргалка. Сейчас наткнулся на это безобразие в заметках и решил собрать вместе в виде мини поста. Многое из этого наверное баян, но вдруг ты не видел. Доклад, кстати, очень хорош. Советую посмотреть.
#talk #recycler #performance
http://telegra.ph/RecyclerView-Performance-Tuning-by-Oleksandr-Tolstykh-10-13
https://youtu.be/QjFa5dEzh28
#talk #recycler #performance
http://telegra.ph/RecyclerView-Performance-Tuning-by-Oleksandr-Tolstykh-10-13
https://youtu.be/QjFa5dEzh28
Telegraph
RecyclerView Performance Tuning by Oleksandr Tolstykh
Video: https://youtu.be/QjFa5dEzh28
Ребята из Uber показали свой доморощенный method tracing tool. И вот знаете, с одной стороны, богатая идея, а с другой, немножко пугает: они решили измерять с уровня системы, т.е. их тул это форк AOSP, который умеет бенчмаркать. Такие дела.
#performance #benchmarks #methodtracing
https://eng.uber.com/nanoscope
#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
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
YouTube
What's new in Android Runtime (Google I/O '18)
If you use the Java or Kotlin programming languages to develop on Android, Android Runtime (ART) is what ensures your code runs quickly and efficiently. Learn more about how ART makes it easier to write a great Android app with improvements in debugging and…
Просто интересная находка: статья от Romain Guy из ранних времён Android про некоторые оптимизации рисования background’ов.
#view #performance
http://www.curious-creature.com/2009/03/04/speed-up-your-android-ui/
#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
Сегодня будет статья с хорошим разбором 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
Medium
Exploring Android P: Priority Buckets
At Google I/O there were a lot of new announcements around the latest version of Android, P. One of these announcements were Priority…
Достаточно объёмное интервью с Сергеем Куксенко. В основном обуждают производительность, ошибки Java, оптимизации и т.п.
#java #performance #jdk
#java #performance #jdk
Habr
Тысячи вещей, которые в Java стоило бы поправить с первой версии: большое интервью с Сергеем Куксенко из Oracle
Сергей Куксенко — перформанс-инженер, видевший Java еще версии 1.0. За это время успел поучаствовать в разработке мобильных, клиентских, серверных приложений и виртуальных машин. Производительностью...
Сказ о том, как улучшить переиспользование OkHttp соединений, добавив реализацию
#okhttp #network #performance
.equals в SSLSocketFactory, и заодно переиспользуя их инстансы. #okhttp #network #performance
Medium
Maximizing OkHttp connection reuse
debugging a 3rd party library
Небольшой гайд по профайлингу main thread событий через Perfetto. Я про этот Perfetto только на прошлой неделе услышал, до этого не встречался и ещё потыкать не успел, но, глядя на положение дел в Studio, чую, там может быть лучше.
#profiler #performance
#profiler #performance
Два прямо неплохих поста из Lyft о том, как следить за потреблением CPU и памяти прямо в проде.
#performance #cpu #memory
#performance #cpu #memory
Medium
Monitoring CPU performance of Lyft’s Android applications
Mobile performance at Lyft
👍11🤮1
На Android Developers появился набор советов о том, как ускорить работу с SQLite. Выглядит здорово! Жаль, что его там не было раньше.
#sqlite #db #performance
#sqlite #db #performance
👍7🔥1🥱1
Хороший пост про четыре основных подхода к оптимизации и грабли, на которые в них можно наступить.
#optimize #performance
#optimize #performance
В Go поработали над трэйсингом:
- Меньше оверхед. Сильно меньше
- Трэйс теперь можно разбивать на куски
- За счёт разбития трэйса на куски, теперь вполне можно flight record'ить наживую
- Ну и API, чтобы парсить трэйсы чуть более удобно
Ну кайф!
#go #performance #trace
- Меньше оверхед. Сильно меньше
- Трэйс теперь можно разбивать на куски
- За счёт разбития трэйса на куски, теперь вполне можно flight record'ить наживую
- Ну и API, чтобы парсить трэйсы чуть более удобно
Ну кайф!
#go #performance #trace
👍1🔥1
Помните подход, который Кармак описывал, когда в коде ставится assert на размер коллекции, чтобы при изменении внешних условий можно было обнаружить старое предположение и перепроверить алгоритм на адекватность в новой ситуации? Тут вот та же по сути идея, только в более глобальном контексте: Always set a limit to the size of the entities your product consumes.
#programming #performance
#programming #performance
👍2