Какой объект(ы) вызывает GC_EXPLICIT?

По какой-то причине мое приложение слишком часто запускает GC_EXPLICIT и из-за этого, вероятно, замедляет его.

Есть ли способ узнать, какие объекты вызывают это?

Я пытался использовать DDMS, чтобы выяснить, есть ли проблема с распределением, но это выглядит нормально.

Кроме того, даже с таким количеством вызовов GC он все еще забивает мою внешнюю кучу во времени :( так что это тоже не очень помогает.


person ron    schedule 12.09.2011    source источник


Ответы (1)


Вы случайно не вызываете метод values() перечисления? Или метод .clone() массива()? (см. связанный вопрос)

person JesusFreke    schedule 12.09.2011
comment
Я клонирую объект с массивом в нем. Но для этого я создаю новые Arraylists и заполняю их клонированными объектами. (вместо клонирования самого списка). К настоящему времени я потерял большую часть явных вызовов. Но у меня куча памяти все равно забивается. Наткнулся на новую проблему, и мне лучше создать новый вопрос для этого. Сохранение состояния холста; Я использую цикл foreach для canvas.drawText(text,x,y,Paint). Было бы лучше, если бы я мог сохранить холст после этого, чтобы мне приходилось каждый раз повторять foreach, верно? просто пока не могу понять ... холст остается пустым при втором запуске. - person ron; 16.09.2011
comment
Правильно, это было бы лучше, как другой вопрос :) - person JesusFreke; 16.09.2011