Статья с демонстрацией и замерами double-checked lock. Здорово расписаны разные тесты полученной конструкции. Спойлер: double-checked lock проиграет synchronized-блоку :)
#benchmark #lock #multithreading
https://portabledroid.wordpress.com/2018/08/09/fast-locking-in-android-with-kotlin/
#benchmark #lock #multithreading
https://portabledroid.wordpress.com/2018/08/09/fast-locking-in-android-with-kotlin/
Portable Droid
Fast Locking in Android with Kotlin
Introduction As I relate in the preface to my most recent book, Addison Wesley’s Android Concurrency, one of my early introductions to advanced concurrent programming was the double checked lock (D…
Пост с описанием ряда ухищрений, на которые идут в Benchmark, чтобы выдавать более стабильные результаты. Там не супер-детально всё описано, но уже что-то.
#jetpack #benchmark
#jetpack #benchmark
Medium
Going Deep on AndroidX Benchmark
Performance has been an important part to ensure smooth user experience, and Android Team had released the first AndroidX Benchmark…
Супер поучительная история. Чел работал над гигантской кодобазой на Java, заоптимизированной донельзя. Система работала на огромном кол-ве машин, поэтому каждый процентик экономии имел большой смысл. Наш протагонист нашёл пространство для ещё одной оптимизации: маршалинг long'ов в VarInt байты. Героически покоряя JIT и извергая ASM инструкции, он добился 4-х кратного ускорения этой небольшой функции. Раскатывает на прод - 0 эффекта. Копает, в чём дело, и, внезапно, facepalm. Никто особо не маршалит настолько больших чисел, чтобы оптимизация дала эффект. Мораль: не надо бенчмаркать на рандомных данных.
#optimize #java #benchmark
#optimize #java #benchmark
😢12😁3❤1👏1