Предотвращение выполнения нескольких сборщиков мусора - PullRequest
0 голосов
/ 15 сентября 2011

Прочитайте в каком-нибудь блоге, что GC в Android происходит в основном потоке (UI), это может вызвать медлительность на экране UI в зависимости от частоты выполнения GC.Поэтому мне было интересно, будет ли хорошей идеей, если я вручную отпущу объекты (присваивая нулевое значение), которые больше не нужны для меня.Таким образом, мы можем избежать многократного выполнения GC в приложении.

Пожалуйста, поделитесь своими мыслями.Спасибо, sku

Ответы [ 2 ]

1 голос
/ 15 сентября 2011

Нет такой вещи, как «ручное освобождение объектов» - по крайней мере, ни в коем случае не имеет смысла для GC. Объект не сразу освобождается / собирается / что угодно, когда вы теряете все ссылки на него; он просто становится правомочным для сбора. GC - это то, что на самом деле выполняет освобождение объекта, и это происходит, когда хочется.

Единственный реальный способ помешать работе ГХ - это создавать меньше объектов, особенно временных. Меньше мусора == меньше мусора.

0 голосов
/ 15 сентября 2011

Освобождение (разыменование) объектов, для которых вы больше не используете, всегда является хорошей идеей.Вы также можете использовать SoftReference, WeakReference и / или WeakHashMap, чтобы помочь GC подобрать вещи, которые вы не против уйтиесли системе требуется место.

Более подробная информация о системе Android GC здесь .

...