Size: a a a

pro.graphon (and gamedev)

2020 February 10

AG

Andrew Growing in pro.graphon (and gamedev)
Lain-dono
Смотри в сторону ассинхронной загрузки/выгрузки. + сгладь углы анимацией загрузки.
хорошо, спасибо 👍
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
Andrew Growing
Парни, нужен совет. Пробую оценить задачу с точки зрения производительности.
Задача такая -
1) андроид-приложение, экран который отображает одну фотографию на весь экран.
2) есть пул фотографий на диске устройства. Например, 60 фотографий.
3) По скроллингу влево-вправо фотографии меняются.
4) Прямо сейчас реализовано следующим образом - готовлю кэш из битмапов и при скролле ставлю в imageView фотографию по позиции. Работает нормально, но требуется большой кэш, так как каждая фотка в битмапе это разрешение экрана * 4 байта rgba и получается фотка даже из webp весом в 500 кб разворачивается в битмап 7 Мб весом. 60 фоток соответсвенно 420 Мб что для оперативной памяти очень много. На слабых девайсах тупит, конечно же.

Вопрос - есть ли смысл попробовать перенести эту работу на GLES ? Если да, то как именно это мне надо организовать?
Познания на уровне "натягивал текстуру на треугольник", но терпение, труд и чатик всё перетрут )

Пример пула фотографий со скроллингом можно посмотреть здесь https://fyu.se/v/go9m2oe1r6
сколько времени занимает декодирование одного такого кадра?
источник

AG

Andrew Growing in pro.graphon (and gamedev)
Timur Gagiev
сколько времени занимает декодирование одного такого кадра?
Я уже не помню цифр )) это не имеет значения.
Бизнес-задачу я решил путём мультитрейдинга и огромного расхода памяти. Тут всё окей.
Теперь я размышляю над путями оптимизации.
источник

VS

Vladyslav Selishchev in pro.graphon (and gamedev)
мультитрейдинг - это конечно мощьно
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
Andrew Growing
Я уже не помню цифр )) это не имеет значения.
Бизнес-задачу я решил путём мультитрейдинга и огромного расхода памяти. Тут всё окей.
Теперь я размышляю над путями оптимизации.
я к тому, что нафига тебе всё распаковывать и в памяти держать, если оно за условные 100 мс распаковывается?
источник

I

Ioann_V in pro.graphon (and gamedev)
Timur Gagiev
я к тому, что нафига тебе всё распаковывать и в памяти держать, если оно за условные 100 мс распаковывается?
угу, все так.
источник

I

Ioann_V in pro.graphon (and gamedev)
а еще можно декодить не все, а только какие то next, а ближайшие три пять штук декодить полностью
источник

I

Ioann_V in pro.graphon (and gamedev)
тут самое дорогое это чтение с диска
источник

I

Ioann_V in pro.graphon (and gamedev)
и не более того
источник

AG

Andrew Growing in pro.graphon (and gamedev)
Timur Gagiev
я к тому, что нафига тебе всё распаковывать и в памяти держать, если оно за условные 100 мс распаковывается?
потому что долбанные qa делают monkey-тесты и пиздят что телефончик не успевает за ихними скроллами 🙈
источник

I

Ioann_V in pro.graphon (and gamedev)
декодинг тут точно не идет боком
источник

I

Ioann_V in pro.graphon (and gamedev)
Andrew Growing
потому что долбанные qa делают monkey-тесты и пиздят что телефончик не успевает за ихними скроллами 🙈
ограничь скорость скролла
источник

FM

Fr Mr in pro.graphon (and gamedev)
Andrew Growing
потому что долбанные qa делают monkey-тесты и пиздят что телефончик не успевает за ихними скроллами 🙈
Их. Мы хоть и ПТУшники, но не на столько колхоз
источник

I

Ioann_V in pro.graphon (and gamedev)
все просто же. Не обязательно давать пользователю крутить со скоростью света.
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
Ioann_V
тут самое дорогое это чтение с диска
7 мб можно и в памяти подержать
источник

AG

Andrew Growing in pro.graphon (and gamedev)
Fr Mr
Их. Мы хоть и ПТУшники, но не на столько колхоз
Это аллегория. Призвана усилить эффект.
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
Ioann_V
ограничь скорость скролла
или скипать фреймы )
источник

I

Ioann_V in pro.graphon (and gamedev)
Timur Gagiev
7 мб можно и в памяти подержать
так у меня идея какая: ближние пять декодить в память, а вот оставшиеся 55 хранить там же, но не декодить. Или там 30,а остальнве подгружать. Такой, трехуровневый кеш.
источник

I

Ioann_V in pro.graphon (and gamedev)
Или скипать фреймы, да, согласен :)
источник

I

Ioann_V in pro.graphon (and gamedev)
Это уже при прокрутке, Андрей!
источник