LazyColumn фризит на Redmi и Tecno за 10к, перепробовал всё что гуглится, спасайте

Рейтинг: 52.9% · 8 голосов
Разработка под iOS и Android: Swift, SwiftUI, Kotlin, Jetpack Compose, Flutter, React Native, публикация в App Store и Google Play, оптимизация приложений.
Ответить
Аватара пользователя
coder_anton
Сообщения: 32
Зарегистрирован: 11 май 2026, 16:50

LazyColumn фризит на Redmi и Tecno за 10к, перепробовал всё что гуглится, спасайте

Сообщение coder_anton »

Приложение на Compose (BOM 2026.04, Kotlin 2.3), лента объявлений с картинками. На Pixel 8 и Samsung A54 всё гладко. Берёшь Redmi 9A или Tecno Spark, на которых сидит половина нашей аудитории (регионы, телефоны до 12к рублей), и скролл превращается в слайдшоу. Frame time скачет 40-80 мс, jank по vitals 14%.

Что уже сделано: ключи и contentType в items, картинки через Coil 3 со строгими размерами, derivedStateOf на скролловом стейте, тяжёлые маппинги унесены с мейна. Прогнал compose compiler reports, нестабильных классов в горячих местах не осталось.

Профилировал через студийный профайлер, рекомпозиций мало, но фреймы всё равно длинные. Куда копать дальше?
👍1 ❤️1 🔥1 😄 🤔1
✔ Лучший ответ сформирован автоматически — lover_denis
@valru, Если release, то дальше по списку. Baseline profiles обязательно: на слабом железе JIT душит первые минуты сессии, профиль плюс macrobenchmark в CI, нам на Galaxy A03 это срезало jank с 16 до 7 процентов. Дальше бери Perfetto вместо студийного профайлера и смотри, где реально уходит время: Choreographer, RenderThread или биндер. И частая засада именно на бюджетниках: декод картинок…
Перейти к ответу →
Аватара пользователя
valru
Сообщения: 63
Зарегистрирован: 11 май 2026, 05:24

Re: LazyColumn фризит на Redmi и Tecno за 10к, перепробовал всё что гуглится, спасайте

Сообщение valru »

release с R8 мерил или дебаг? дебажный компоуз медленнее раза в три, классика жанра
👍1 ❤️ 🔥1 😄2 🤔
Аватара пользователя
lover_denis
Сообщения: 6
Зарегистрирован: 16 май 2026, 17:31

Re: LazyColumn фризит на Redmi и Tecno за 10к, перепробовал всё что гуглится, спасайте

Сообщение lover_denis »

✔ Лучший ответ — сформирован автоматически
@valru, Если release, то дальше по списку. Baseline profiles обязательно: на слабом железе JIT душит первые минуты сессии, профиль плюс macrobenchmark в CI, нам на Galaxy A03 это срезало jank с 16 до 7 процентов. Дальше бери Perfetto вместо студийного профайлера и смотри, где реально уходит время: Choreographer, RenderThread или биндер.

И частая засада именно на бюджетниках: декод картинок. Слабый CPU, и Coil жуёт jpeg дольше, чем рисуется кадр. Превьюшкам ставь RGB_565, памяти вдвое меньше и декод быстрее, глазом разницу на дешёвой матрице никто не увидит. Плюс проверь overdraw, полупрозрачная подложка на каждом айтеме убивает Mali-G52.
👍 ❤️ 🔥 😄1 🤔1
Аватара пользователя
k8s2000
Сообщения: 85
Зарегистрирован: 11 май 2026, 00:27

Re: LazyColumn фризит на Redmi и Tecno за 10к, перепробовал всё что гуглится, спасайте

Сообщение k8s2000 »

Redmi 9A это 2 гига памяти и Helio G25, там и нативный RecyclerView не летает. Глянь сколько процесс жрёт: если за 300 метров, система душит и никакой компоуз не спасёт. Иногда честнее на таких девайсах показать облегчённую ленту без теней и анимаций, чем гнаться за 60 fps, которых железо физически не умеет.
👍1 ❤️ 🔥1 😄 🤔2
Аватара пользователя
lentyaj
Сообщения: 68
Зарегистрирован: 11 май 2026, 00:17

Re: LazyColumn фризит на Redmi и Tecno за 10к, перепробовал всё что гуглится, спасайте

Сообщение lentyaj »

coil 3 кстати спорный выбор, glide на старье до сих пор шустрее за счёт пула битмапов. но это так, к слову
👍 ❤️3 🔥1 😄 🤔
Аватара пользователя
coder_vlad
Сообщения: 72
Зарегистрирован: 11 май 2026, 01:57

Re: LazyColumn фризит на Redmi и Tecno за 10к, перепробовал всё что гуглится, спасайте

Сообщение coder_vlad »

У нас была почти такая же картина, и виноват оказался не список. Раз: Modifier.shadow на каждой карточке, на мали и адрено это оффскрин пасс, заменили тень статичной подложкой и минус 12 мс с кадра. Два: таймер в шапке экрана сидел на flow без distinctUntilChanged и перерисовывал ленту целиком дважды в секунду. В перфетто такое видно сразу, в студийном профайлере мы это месяц не замечали.
👍1 ❤️1 🔥1 😄 🤔
Аватара пользователя
lost300z
Сообщения: 77
Зарегистрирован: 11 май 2026, 04:27

Re: LazyColumn фризит на Redmi и Tecno за 10к, перепробовал всё что гуглится, спасайте

Сообщение lost300z »

@k8s2000, вложенные LazyRow внутри LazyColumn небось? и graphicsLayer с блюром на превьюшках? покажи код карточки, а то гадать можно до пенсии
👍2 ❤️1 🔥1 😄 🤔
Аватара пользователя
kingcnut
Сообщения: 33
Зарегистрирован: 12 май 2026, 07:12

Re: LazyColumn фризит на Redmi и Tecno за 10к, перепробовал всё что гуглится, спасайте

Сообщение kingcnut »

Добавь в прод JankStats и шли p90 frame time в аналитику вместе с моделью девайса. Мы так собрали топ-5 худших моделей и они автоматом получают упрощённый режим ленты. Иначе так и будешь чинить на пикселе то, что лагает на текно.
👍 ❤️ 🔥1 😄1 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Мобильная разработка»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость