Устанавливает значение null
объекту, достаточно хорошему для сбора мусора, чтобы собирать и очищать память на Java (Android)?Уничтожает с утечками памяти и производительностью?
ответ
Да. Вот как объекты освобождаются на Java. Как только они освобождаются, они получают право на сбор мусора и собираются позднее.
Если все ссылки на объект равны нулю, то он в конечном итоге будет очищен сборщиком мусора. Достаточно ли этого зависит от того, какие другие ресурсы хранит объект (например, дескрипторы файлов или дескрипторы db, которые могут быть пропущены) и достаточно ли работает сборщик мусора, чтобы освободить его до того, как вам понадобится память. Большие объекты, такие как растровые изображения, часто имеют функцию, которая может быть вызвана, чтобы освободить память раньше, чтобы избежать этой проблемы (пример использования растрового изображения()).
Коробка мусора маркирует и подметает.
При использовании меток и прокрутки объекты без ссылок не возвращаются немедленно. Вместо этого мусор может накапливаться до тех пор, пока вся доступная память не будет исчерпана. Когда это произойдет, выполнение программы временно приостанавливается, в то время как алгоритм mark-and-sweep собирает весь мусор. Как только все объекты без ссылок будут восстановлены, нормальное выполнение программы может возобновиться.
http://www.brpreiss.com/books/opus5/html/page424.html. Ссылка содержит сведения о том, как работают метки и развертки.
http://chaoticjava.com/posts/how-does-garbage-collection-work/
Technical details of Android Garbage Collector
Если вы установите переменную NULL. переменная будет доступна для сбора мусора. Однако это зависит от виртуальной машины (dalvik), чтобы решить, когда собирать мусор. Это также зависит от размера кучи. Более размер кучи более частый сбор мусора. http://www.youtube.com/watch?v=_CruQY55HOk. Парень в видео дает большое предупреждение об использовании большой кучи, поскольку это приводит к более частому сбору мусора, в результате чего приложение приостанавливается.
Если текущая работа требует большего объема памяти, а память недоступна, сборщик мусора запускается в свободную память. (Даже после того, как требуемое пространство памяти не будет доступно, вы получите утечку памяти).
http://developer.android.com/training/articles/perf-tips.html.
Цитата из указанной ссылки. Когда вы выделяете больше объектов в своем приложении, вы будете вынуждать периодическую сборку мусора, создавая небольшие «икоты» в пользовательском режиме.
- 1. Борьба с утечками памяти
- 2. Проблема с утечками памяти
- 3. UIViews, связанные с утечками памяти
- 4. Python - Работа с утечками памяти
- 5. Проблема с утечками памяти с помощью инструментов
- 6. Проблемы с утечками памяти с помощью интерфейса?
- 7. GUI с GTK с несколькими утечками памяти
- 8. Управление утечками памяти в ContentProvider
- 9. Как справиться с утечками памяти в C#
- 10. Проблемы с управлением утечками памяти C++
- 11. Класс с утечками памяти в инструментах
- 12. Работа с утечками памяти и изменением размера массива
- 13. Logic за утечками памяти в андроиде
- 14. Как бороться с утечками памяти в RMagick в Ruby?
- 15. Как бороться с утечками памяти из внешней библиотеки
- 16. Нужна помощь с утечками памяти в RSS Reader
- 17. Связаны ли ссылки со статическими свойствами с утечками памяти
- 18. Является ли яблоко одобряющим приложение iOS с утечками памяти?
- 19. Пользовательские Picasso с утечками Builder NetworkBroadcastReceiver
- 20. Почему мое приложение заполнено утечками памяти после перехода на ARC?
- 21. Совокупные проблемы с производительностью и производительностью
- 22. Проблемы с производительностью gevent и витой производительностью
- 23. Проблемы с производительностью AEM (медленная утечка памяти) org.slf4j.helpers.BasicMarker и org.slf4j.helpers.BasicMarkerFactory
- 24. Работа с утечками памяти в классе новые и удаленные операторы C++
- 25. Проблемы с производительностью MemSQL
- 26. Почему ничего не уничтожает?
- 27. Проблемы с приложением WPF в Windows XP Tablet с утечками памяти
- 28. С производительностью cte и roberumber
- 29. ORM и проблемы с производительностью
- 30. Enum с атрибутами и производительностью
убедитесь, что нет ссылки на исходный объект, тогда сбор мусора можно сделать, но я не думаю, что он гарантирован. – dchhetri
Установка значения «null» для объекта полностью не связана с его GC. Гораздо более распространенным является то, что объекты получают GC'd только потому, что больше никто не ссылается на них. –