Есть ли способ дросселировать ГК для внешних выделений в андроиде - PullRequest
0 голосов
/ 30 декабря 2011

Наше приложение для Android часто загружает большое количество изображений, загружает их, масштабирует / обрезает и сохраняет их на диск. Это происходит в фоновом потоке. В процессе мы создаем много растровых изображений, которые мы тщательно перерабатываем.

Это вызывает постоянный вызов GC с такими сообщениями:

12-29 16:28:51.076 D/dalvikvm( 4642): GC_EXTERNAL_ALLOC freed 342K, 14% free 32073K/37255K, external 2826K/3332K, paused 172ms

Теоретически необходимо запускать GC так часто, потому что память, которую мы используем для растровых изображений, освобождается вручную с помощью recycle. Проблема заключается в том, что мягкий предел для внешнего распределения очень низок и вызывает постоянный вызов GC и блокирует пользовательский интерфейс на 170 мс (в Gingerbread).

Есть ли способ настроить этот мягкий предел для внешних распределений немного выше, или другой способ предотвратить эту постоянную GC?

...