Android - эффективно обновлять счетчики в представлениях - PullRequest
2 голосов
/ 14 июля 2011

В приложении, которое я пишу, у меня есть куча статистики, которую я хочу отобразить для пользователя.

Статистика включает в себя время последнего запуска определенного модуля, когда он будет запущен в следующий раз, когдабыло установлено последнее соединение с сервером, а затем будет следующее.

Кроме того, есть такие вещи, как использование памяти (простое использование памяти, а не измерение фактического использования).

Использование памяти и т. Д. Может обновляться каждые несколько секунд, так что это не проблема, но время должно обновляться, по крайней мере, каждую секунду (для счетчиков).
Поскольку запуск каждую секунду (или даже с периодом 500 мс) приводит кнерегулярные обновления / пропущенные секунды Теперь я запускаю его с периодом 300 мс.

Однако я заметил, что мое приложение начало запаздывать при запуске.
После некоторого профилирования выясняется, что это размеры, которые необходимо изменить,занимает 70% времени, а форматирование строк (для форматирования счетчика) занимает почти все остальное.

Помимо используемого процессора, я вижумного выделений, каждые несколько секунд я вижу GC_CONCURRENT в logcat.

Какие-нибудь советы по эффективному решению этой проблемы?

Ответы [ 2 ]

0 голосов
/ 17 июля 2011

Я решил проблему, написав свой собственный таймер, который спит короткими шагами и обновляет представление только по истечении полной секунды.

Таким образом, интервал срабатывания будет [period, period+sleepTime), что допустимо при выборе короткого времени сна.

Я также изменился, так что там написано «5 минут назад», и у меня есть два таймера: один срабатывает каждую минуту, а другой - каждую секунду.

0 голосов
/ 14 июля 2011

Можете ли вы реструктурировать его таким образом, чтобы размеры полей были меньше?Например: установите ширину вашего элемента на fill_screen или размер DP, который больше самого длинного размера строки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...