LogCat Eclipse переполняется WAIT_FOR_CONCURRENT_GC с Android

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

12-30 12:40:05.344: D/dalvikvm(22831): WAIT_FOR_CONCURRENT_GC заблокировано 5 мс 12-30 12:40:05.383: D/dalvikvm(22831): GC_CONCURRENT освобождено 511K, 34% свободно 2374K/3552K, пауза 1мс+2мс , всего 14 мс

Я знаю, что это как-то связано со сборкой мусора, но всякий раз, когда я принудительно останавливаю приложение (единственный способ закрыть его), я теряю около 5-10 МБ доступной оперативной памяти, пока не перезапущу устройство. кто-нибудь знает, что это значит и как это предотвратить?

устройство, которое я использую, — это Verizon Galaxy Nexus под управлением Android 4.2.1 (Cyanogenmod 10.1) и версии sdk/target 3.2 (уровень API 13). Спасибо!


person RetroZelda    schedule 30.12.2012    source источник


Ответы (2)


Вы сможете найти в Google гораздо более подробное описание, но в основном это просто означает, что вы заставляете сборщик мусора работать очень усердно.

Программирование игры отличается от программирования «обычного» приложения: ваша игра, вероятно, зацикливается бесчисленное количество раз. В результате даже небольшая утечка памяти может быстро перерасти в настоящую проблему.

Кроме того, обычно GC — ваш самый большой друг, а в играх — один из ваших врагов. Каждый запуск сборщика мусора создает небольшую заморозку, поскольку он «останавливает мир».

Я бы посоветовал вам продолжить поиск в конкретных учебниках по игровому программированию и о том, как работать с GC в них.

person Stefan de Bruijn    schedule 30.12.2012
comment
спасибо, когда вы бесчисленное количество раз указали на циклы, меня осенило, что я должен контролировать частоту обновления и рендеринга потока - person RetroZelda; 08.01.2013

Не уверен, что это именно то, что вы ищете, но это первое, что я ищу вашу ошибку - что означает блокировка WAIT_FOR_CONCURRENT_GC?. Кроме того, почти нет причин нацеливаться на 3.2.

person snotyak    schedule 30.12.2012