Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как убирается мусор из permgen ? / 7 сообщений из 7, страница 1 из 1
28.12.2016, 18:55
    #39377169
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убирается мусор из permgen ?
Ничего конкретного не прочитал, про чистку в permgen.
Насколько я понял permgen/metaspace хранит в основном метаданные классов(ещё что-то?)

Загрузкой классов занимается classLoader. Это обычный класс, экземпляр которого хранится в хипе. если в пермгене у классов, нет ссылок на наш класслоадер, то те классы, которые он загрузил монут быть выгружены(почищены из пермгена)

А как это происходит обычно? по таймауту или по достижении определенного объема? различается ли алгоритм от gc к gc ? тот самый gc, что чистит хип этим занимается?
...
Рейтинг: 0 / 0
28.12.2016, 19:05
    #39377179
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убирается мусор из permgen ?
questioner,

Я разве не приводил эту ссылку? Там, вроде, достаточно доходчиво расписано какими крутилками Metaspace настраивается.
http://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/considerations.html
Из этих крутлок реализация GC и исходит.

PermGen работал слегка иначе. На сколько я понял, Metaspace не заменяет PermGen на 100%, часть объектов пришлось оставить в обычной куче после отказа от PermGen. Но есть ли смысл изучать PermGen? Не проще ли принять его за устаревшую технологию?
...
Рейтинг: 0 / 0
28.12.2016, 19:10
    #39377184
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убирается мусор из permgen ?
Blazkowiczquestioner,

Я разве не приводил эту ссылку? Там, вроде, достаточно доходчиво расписано какими крутилками Metaspace настраивается.
http://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/considerations.html
Из этих крутлок реализация GC и исходит.

PermGen работал слегка иначе. На сколько я понял, Metaspace не заменяет PermGen на 100%, часть объектов пришлось оставить в обычной куче после отказа от PermGen. Но есть ли смысл изучать PermGen? Не проще ли принять его за устаревшую технологию?

я просто исходил из того, что это +/- одно и то же.

Ну мне не так интересны конкретные крутилки, хочу сначала верхнеуровенево понять
...
Рейтинг: 0 / 0
28.12.2016, 19:20
    #39377189
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убирается мусор из permgen ?
Blazkowicz,

ещё я не понял куда утекает пермген при работает с ThreadLocal
...
Рейтинг: 0 / 0
28.12.2016, 20:52
    #39377237
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убирается мусор из permgen ?
questionerя просто исходил из того, что это +/- одно и то же.
Ну, мне не так интересны конкретные крутилки, хочу сначала верхнеуровенево понять
Просто вопросы слишком детальные. Когда коллектор вызывается? Да, когда надо, тогда и вызывается. Это вообще не существенно для метаспейса и пермгена. С этим проблемы возникают крайне редко.
...
Рейтинг: 0 / 0
28.12.2016, 20:58
    #39377240
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убирается мусор из permgen ?
questionerещё я не понял куда утекает пермген при работает с ThreadLocal
ThreadLocal это класс, загружаемый бустрап класслоадером. Соответственно этот класслоадер никогда не будет собран, как и этот класс. Если вы, вдруг, не почистили ссылку, и она там валяется, то ГЦ не может собрать объект, так как ThreadLocal на него ссылается. Не может собрать объект, значит не может собрать и класс. Не может собрать класс, значит не может собрать и его лоадер. Не может собрать лоадер, значит не соберёт и все классы им загруженные (хотя эту багофичу может и исправят со временем). То есть лоадер и все его классы будут занимать место в пермгене.

Новые класслоадеры создаются контейнерами при загрузке новых модулей. Таким образом классы разных модулей изолируются друг от друга. Чаще всего это проявляется при редеплое модуля.
...
Рейтинг: 0 / 0
29.12.2016, 00:10
    #39377314
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убирается мусор из permgen ?
Blazkowiczquestionerещё я не понял куда утекает пермген при работает с ThreadLocal
ThreadLocal это класс, загружаемый бустрап класслоадером. Соответственно этот класслоадер никогда не будет собран, как и этот класс. Если вы, вдруг, не почистили ссылку, и она там валяется, то ГЦ не может собрать объект, так как ThreadLocal на него ссылается. Не может собрать объект, значит не может собрать и класс. Не может собрать класс, значит не может собрать и его лоадер. Не может собрать лоадер, значит не соберёт и все классы им загруженные (хотя эту багофичу может и исправят со временем). То есть лоадер и все его классы будут занимать место в пермгене.

Новые класслоадеры создаются контейнерами при загрузке новых модулей. Таким образом классы разных модулей изолируются друг от друга. Чаще всего это проявляется при редеплое модуля.

о, как круто! спасибо
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как убирается мусор из permgen ? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]