Как найти происхождение GC_FOR_MALLOC?

Я работаю над Android-приложением, которое попадает в бесконечный цикл GC_FOR_MALLOC:

06-15 11:24:56.685: DEBUG/dalvikvm(118): GC_FOR_MALLOC freed 4136 objects / 374744 bytes in 66ms 06-15 11:24:59.176: DEBUG/dalvikvm(521): GC_FOR_MALLOC freed 9340 objects / 524152 bytes in 645ms 06-15 11:24:59.846: DEBUG/dalvikvm(521): GC_FOR_MALLOC freed 9344 objects / 524328 bytes in 149ms 06-15 11:25:01.535: DEBUG/dalvikvm(521): GC_FOR_MALLOC freed 9346 objects / 524448 bytes in 193ms 06-15 11:25:02.175: DEBUG/dalvikvm(521): GC_FOR_MALLOC freed 9344 objects / 524344 bytes in 126ms 

Приложение прочитало некоторое jpeg-изображение через сокет (выделенный поток) и отобразило его в imageView. Контур GC блокирует отображение изображения.

Есть ли решение узнать, какая строка или, по крайней мере, какая часть кода бросает сборку мусора?

благодаря

Я не уверен, что вы можете получить доступ к виртуальной машине и проверить, почему она выполняет gc все время, но gc обычно выполняется, когда есть необходимость в ней. Вы должны проверить, что использует столько памяти. Это может быть загрузка вашего изображения (это большое изображение?) Или, возможно, это что-то еще в вашем приложении. Проверьте это сообщение о том, как анализировать использование вашей памяти и пока вы на ней проверяете утечку памяти.