|
Модераторы: javastic |
|
konshyn |
|
|||
Опытный Профиль Группа: Участник Сообщений: 295 Регистрация: 19.9.2013 Репутация: нет Всего: нет |
Всем привет.
Есть приложение. Там производится очень много операций на cpu и gpu. Первые несколько секунд все работает быстро и рендерится все в реал-тайм, а потом резко количество фпс проседает по ощущениям до 6-8. Из-за чего это может быть? Как андроид решает, что делать, когда приложение потребляет много процессорного времени. Может ли андроид тормозить работу гпу для рендера? -------------------- «Потому что ценность акта действия в этой стране возрастает в несколько раз». |
|||
|
||||
iillyyaa2033 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.6.2017 Репутация: нет Всего: нет |
Различных причин тормозов много. Проблема может быть как в самой программе (т.е. кривой код, что вероятнее), так и в системе. Это все, что сейчас можно сказать за отсутствием деталей.
Андроид распределяет процессорное время между процессами в зависимости от их приоритета (от -20 до 19) и группы (Foreground/background). Не слышал о возможности андроида тормозить GPU, сомневаюсь в ее существовании. Вы можете: 1. почитать логи - logcat - записав их CatLog'ом, например. Также Вы можете выложить лог сюда, и тогда я скажу, есть ли там что-то полезное или нет. 2. воспользоваться отладкой 3. написать автору программы, указав как минимум название устройства и версии андроида и программы. |
|||
|
||||
konshyn |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 295 Регистрация: 19.9.2013 Репутация: нет Всего: нет |
Автор программы - Я:)
Я тоже, так как в голову даже не приходит мысль о том, как это вообще могло бы работать, так как я сам серверный программист и пишу близко к железу. Но один человек предположил, что если сильно загрузить gpu одной операцией, то следующие операции будут работать медленнее - своеобразный deadlock gpu. Как по мне - бред, но решил уточнить.
Приложение выглядит следующим образом. Первая часть - библиотека, обрабатывающая видео реал-тайм и которая выполняет много операций на cpu (поиск с помощью нейросетей) и производит рендер с помощью OpenGL ES (есть объекты, которые имеют 10к треугольников, отражения, блюр и другие эффекты). Вторая часть - приложение на андроид, которое использует эту библиотеку. Добавилась новая деталь: при сборке release-версии проблема исчезла. Конечно, в продакшене будет релиз-версия, но хотелось бы выяснить причину такого поведения. -------------------- «Потому что ценность акта действия в этой стране возрастает в несколько раз». |
||||||
|
|||||||
iillyyaa2033 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.6.2017 Репутация: нет Всего: нет |
Помнится, eclipse с ADT плагином иногда криво собирал приложение - приходилось чистить проект и компилировать-дексировать по-новой. Возможно, дело в этом. Решается простым Project -> Clean (еслиу Вас eclipse) или аналогичным для других ide. (Можно тупо удалить кэши и папки bin/ и gen/)
С другой стороны, я бы (просто на всякий случай) проверил передачу данных из кода в шейдер и работу самого шейдера - это одно из узких мест в программе. Это сообщение отредактировал(а) iillyyaa2033 - 3.7.2017, 18:31 |
|||
|
||||
konshyn |
|
|||
Опытный Профиль Группа: Участник Сообщений: 295 Регистрация: 19.9.2013 Репутация: нет Всего: нет |
Проверял много раз. Один раз копируются все данные, а потом каждый кадр передается только текстура и несколько матриц, а это не та нагрузка, которая тормозит работу:) Похоже, в моем случае данное явление вызывает так называемый тротлинг. Это сообщение отредактировал(а) konshyn - 4.7.2017, 11:25 -------------------- «Потому что ценность акта действия в этой стране возрастает в несколько раз». |
|||
|
||||
ekaterina445885 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 5.7.2017 Репутация: нет Всего: нет |
||||
|
||||
iillyyaa2033 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.6.2017 Репутация: нет Всего: нет |
||||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Android | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |