Молодой, Штатный и пермское поколение

Я перепутан с "кучей", Молодой, Штатной и пермское поколение.

Кто-либо мог объяснить?

61
задан Ravindra babu 13 March 2016 в 12:59
поделиться

3 ответа

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

Свободно говоря, как объекты «выживают» повторные сборные мусора в молодого поколения , они мигрируются до , получавших поколений . постоянное поколение - это особый случай, он содержит объекты, которые необходимы JVM, которые не обязательно представлены в вашей программе, например объекты, которые представляют собой классы и методы.

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

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

Это сказанное, существует простое историческое расположение, которое все еще полезно на концептуальном уровне. Исторически молодое поколение было бы коллектором копирования , а генерация - сочетание Mark и Sweep Collector . A Копировальная коллекционер Оплатается по существу, нет стоимости ЦП для избавления от мусора, большая часть стоимости поддерживает живые объекты, цена этой эффективности является более тяжелым использованием памяти. A Mark и Sweep Collector оплачивает некоторые расходы на процессор как в прямом эфире, так и неиспользованные объекты, а более эффективно используют память.

72
ответ дан 24 November 2019 в 17:17
поделиться

Нет, нет способа (о котором я знаю). К сожалению для вас, правильным способом сделать это было бы изменить разрешения текущего пользователя или создать нового пользователя только с привилегиями выбора. Я понимаю, что это не тот ответ, который вы ищете, но наличие Sql Server, который терпит крах, когда вы пытаетесь изменить вещи в нем, кажется проблемой, которая действительно стоит рассмотреть. Вы используете учетную запись «sa» для подключения? Если это так, необходимо создать другого пользователя и предоставить ему соответствующие разрешения.

-121--3294891-

Рекомендуется использовать cellspacing и cellpadding для атрибутов table тэгов или border-spacing css.

-121--825896-

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

PermGen, Young и Tenured являются различными классификациями объектов (или места в куче, где они могут быть).

PermGen: эти объекты всегда будут рядом, они не мусор собраны. Там находятся объекты классов, интернированные последовательности и т.д. Не знаю, есть ли там ГК (когда система разгружает классы... но это не нормальная вещь)

Young: когда объект создан, он здесь.

Tenured: объект переходит в эту классификацию/категорию, когда он переживает N GC-проходов (survive = GC-проходов, но на этот объект имеется ссылка, поэтому его нельзя восстановить).

В зависимости от используемого GC и некоторой параметризации, GC проходит более или менее часто.

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

7
ответ дан 24 November 2019 в 17:17
поделиться

Вот еще одна отличная (хотя и длинная) статья о том, как настраивать/устанавливать размеры ваших GC параметров, которая может помочь вам понять еще больше:

https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/

Очень полезное чтение, если у вас проблемы с GC и вам нужно знать, как читать GC лог-файлы, или вам нужно понять, как работает ваш текущий GC коллектор.

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

http://java.sun.com/performance/jvmstat/visualgc.html

2
ответ дан 24 November 2019 в 17:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: