170 похожих чатов

Всем привет, кто-то использовал и менял динамически ClassLoader-ы? В проекте

используется GroovyClassLoader, но порой нужно удалить из него класс, а поскольку из classLoader-а нельзя выгружать классы, то при необходимости создаем новый, но без ненужного класса.

Проблема в том, что тогда старый ClassLoader не удаляется сборщиком мусора и люто течет metaspace. В вижу только, что он сам себя удерживает. Как такое может быть ?

8 ответов

10 просмотров

Инстансы классов из этого класслоадера живут долго?

> вижу только, что он сам себя удерживает. Как такое может быть ? сам себя не может. если никто извне на него ( или загруженные классы) не ссылается, он будет собран gc. кэши, thread-local-data обычно те места, в которых остаётся ненайденное.

Matvey-Noskov Автор вопроса
Anton Chistyakov
> вижу только, что он сам себя удерживает. Как так...

Я тут кстати еще нашел такую штуку https://wiki.openjdk.java.net/display/zgc/Main Я правильно понимаю, что выгрузку классов отключили только для сборщика zgc. При этом я нашел интересную презентацию, кстати (смотреть 7 слайд) http://cr.openjdk.java.net/~pliden/slides/ZGC-Jfokus-2019.pdf , там сказано, что сборка класов освуществляется всё же. Неужели это из-за разных вендоров?

Matvey-Noskov Автор вопроса
Anton Chistyakov
> вижу только, что он сам себя удерживает. Как так...

Я еще потыкаю, вполне допускаю, что mat не показывает, что существуют классы, которые где-то используюится и принадлежат данному classLoader-у

Matvey Noskov
Я тут кстати еще нашел такую штуку https://wiki.op...

в 11 выгрузка классов ещё не было, с 12 должна afaiu

Matvey-Noskov Автор вопроса
Anton Chistyakov
в 11 выгрузка классов ещё не было, с 12 должна afa...

на 5 слайде же рассказывают про новвоведения для 11

Matvey-Noskov Автор вопроса
Anton Chistyakov
в 11 выгрузка классов ещё не было, с 12 должна afa...

но мы же говорим только про конкретный сборщик zgc ?

Matvey Noskov
но мы же говорим только про конкретный сборщик zgc...

ага, zgc новый. остальные gc ( коллеги поправят, если ошибусь) выгрузку класса делают. когда, именно, как, вероятно, надо смотреть конкретно для gc

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта