Модераторы: javastic
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Приложение через пару секунд начинает тормозить 
:(
    Опции темы
konshyn
Дата 2.7.2017, 01:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 19.9.2013

Репутация: нет
Всего: нет



Всем привет.
Есть приложение. Там производится очень много операций на cpu и gpu. Первые несколько секунд все работает быстро и рендерится все в реал-тайм, а потом резко количество фпс проседает по ощущениям до 6-8. Из-за чего это может быть? Как андроид решает, что делать, когда приложение потребляет много процессорного времени. Может ли андроид тормозить работу гпу для рендера?


--------------------
«Потому что ценность акта действия в этой стране возрастает в несколько раз».
PM MAIL Skype   Вверх
iillyyaa2033
Дата 2.7.2017, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.6.2017

Репутация: нет
Всего: нет



Различных причин тормозов много. Проблема может быть как в самой программе (т.е. кривой код, что вероятнее), так и в системе. Это все, что сейчас можно сказать за отсутствием деталей. 

Андроид распределяет процессорное время между процессами в зависимости от их приоритета (от -20 до 19) и группы (Foreground/background).  Не слышал о возможности андроида тормозить GPU, сомневаюсь в ее существовании.

Вы можете:
1. почитать логи - logcat - записав их CatLog'ом, например. Также Вы можете выложить лог сюда, и тогда я скажу, есть ли там что-то полезное или нет.
2. воспользоваться отладкой
3. написать автору программы, указав как минимум название устройства и версии андроида и программы.
PM MAIL   Вверх
konshyn
Дата 2.7.2017, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 19.9.2013

Репутация: нет
Всего: нет



Цитата(iillyyaa2033 @  2.7.2017,  22:33 Найти цитируемый пост)
3. написать автору программы, указав как минимум название устройства и версии андроида и программы. 

Автор программы  - Я:)

Цитата(iillyyaa2033 @  2.7.2017,  22:33 Найти цитируемый пост)
 Не слышал о возможности андроида тормозить GPU, сомневаюсь в ее существовании.

Я тоже, так как в голову даже не приходит мысль о том, как это вообще могло бы работать, так как я сам серверный программист и пишу близко к железу. Но один человек предположил, что если сильно загрузить gpu одной операцией, то следующие операции будут работать медленнее - своеобразный  deadlock gpu. Как по мне - бред, но решил уточнить. 

Цитата(iillyyaa2033 @  2.7.2017,  22:33 Найти цитируемый пост)
Андроид распределяет процессорное время между процессами в зависимости от их приоритета (от -20 до 19) и группы (Foreground/background). 

Приложение выглядит следующим образом. Первая часть - библиотека, обрабатывающая видео реал-тайм и которая выполняет много операций на cpu (поиск с помощью нейросетей) и производит рендер с помощью OpenGL ES (есть объекты, которые имеют 10к треугольников, отражения, блюр и другие эффекты). Вторая часть - приложение на андроид, которое использует эту библиотеку. 

Добавилась новая деталь: при сборке release-версии проблема исчезла. Конечно, в продакшене будет релиз-версия, но хотелось бы выяснить причину такого поведения.




--------------------
«Потому что ценность акта действия в этой стране возрастает в несколько раз».
PM MAIL Skype   Вверх
iillyyaa2033
Дата 3.7.2017, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.6.2017

Репутация: нет
Всего: нет



Помнится, eclipse с ADT плагином иногда криво собирал приложение - приходилось чистить проект и компилировать-дексировать по-новой. Возможно, дело в этом.  Решается простым Project -> Clean (еслиу Вас eclipse) или аналогичным для других ide. (Можно тупо удалить кэши и папки bin/ и gen/)

С другой стороны, я бы (просто на всякий случай) проверил передачу данных из кода в шейдер и работу самого шейдера - это одно из узких мест в программе.

Это сообщение отредактировал(а) iillyyaa2033 - 3.7.2017, 18:31
PM MAIL   Вверх
konshyn
Дата 4.7.2017, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 19.9.2013

Репутация: нет
Всего: нет



Цитата(iillyyaa2033 @  3.7.2017,  18:27 Найти цитируемый пост)
С другой стороны, я бы (просто на всякий случай) проверил передачу данных из кода в шейдер и работу самого шейдера - это одно из узких мест в программе.

Проверял много раз. Один раз копируются все данные, а потом каждый кадр передается только текстура и несколько матриц, а это не та нагрузка, которая тормозит работу:)

Похоже, в моем случае данное явление вызывает так называемый тротлинг.

Это сообщение отредактировал(а) konshyn - 4.7.2017, 11:25


--------------------
«Потому что ценность акта действия в этой стране возрастает в несколько раз».
PM MAIL Skype   Вверх
ekaterina445885
Дата 5.7.2017, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 5.7.2017

Репутация: нет
Всего: нет



спасибо за информацию!

Кардинг форум
PM MAIL WWW   Вверх
iillyyaa2033
Дата 6.7.2017, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.6.2017

Репутация: нет
Всего: нет



Цитата(konshyn @  4.7.2017,  11:25 Найти цитируемый пост)
каждый кадр передается только текстура

ссылка на нее, верно?

Попробуйте взять DDMS и посмотреть на Method profiling. Есть методы, выполнение которых звнимает много времени - оптимизируем. Нет таких методов - значит, виноваты не Вы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Android | Следующая тема »


 




[ Время генерации скрипта: 0.1202 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.