Когда сборщик мусора используется в Java?

Насколько я знаю, GC используется только тогда, когда JVM требуется больше памяти, но я не уверен в этом. Поэтому, пожалуйста, кто-то предложит ответ на этот вопрос.

 Sagar V29 сент. 2010 г., 19:30
В Интернете много хороших статей о GC. Попробуйте поискать солнечные блоги или официальные документы. Это поможет вам больше всего.

Ответы на вопрос(4)

Решение Вопроса

алгоритм сборки мусора в Java довольно сложен и не так прост. Кроме того, для GC доступен не только алгоритм, который можно выбрать во время запуска виртуальной машины с помощью аргумента, передаваемого в JVM.

Здесь есть часто задаваемые вопросы о сборке мусора:http://www.oracle.com/technetwork/java/faq-140837.html

Oracle также опубликовала статью «Настройка сборки мусора с помощью виртуальной машины Java [tm] 5.0», которая содержит подробные сведения о сборке мусора и, вероятно, поможет вам лучше понять проблему:http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html

 Denys S.29 сент. 2010 г., 23:55
Ссылка на FAQ делает свое дело.

оторый установленный интервал или на основе определенных условий они включаются и исследуют каждый объект.

Современные дни коллекционеры умнее в том смысле, что они дифференцируются на основе того факта, что у объектов разная продолжительность жизни. Объекты различаются между объектами молодого поколения и объектами наемного поколения.

Память управляется в пулах в соответствии с поколением. Всякий раз, когда пул памяти молодого поколения заполняется, происходит незначительный сбор. Выжившие объекты перемещаются в пул памяти с постоянным созданием. Когда пул памяти заемного поколения заполняется, происходит большая коллекция. Сохраняется третье поколение, которое известно как постоянное поколение и может содержать объекты, определяющие классы и методы.

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

В целом, однако, большинство JVM запускают GC, когда выделение памяти увеличивает общий объем выделенной памяти выше некоторого порога. Может быть несколько уровней gc (полный или частичный / генеральный), которые встречаются при разных пороговых значениях.

чтобы дать разработчикам JVM лучшие условия работы для обеспечения хороших сборщиков мусора.

Следовательно, сборщики мусора и их поведение чрезвычайно зависимы от эндора.

Самым простым, но наименее забавным является тот, который останавливает всю программу, когда нужно очистить. Другие более изощренны и работают тихо по мере очистки вашей программы, когда вы идете более или менее агрессивно.

Самый интересный способ исследовать сборку мусора - запустить jvisualvm в Sun 6 JDK. Это позволяет вам увидеть много, много внутренних вещей, имеющих отношение к сбору мусора.

https://visualvm.dev.java.net/monitor_tab.html (но в новейшей версии их гораздо больше)

Ваш ответ на вопрос