JProfiler - кнопка «Запустить сборщик мусора» против опции «Выполнить полный сборщик мусора в снимке кучи» - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть приложение, которое создает экземпляр Class Loader (URLClassLoader) и динамически загружает файл Jar, используя его.Затем создается экземпляр класса из Jar с использованием отражения.Наконец, все ссылки обнуляются так, как предполагается, что Class Loader и связанные с ним объекты и классы должны собираться мусором.

Во время профилирования в JProfiler 10.1.5 я нажимаю " Запустить GC"на панели инструментов, а затем я делаю снимок кучи (не имеет значения, выбран ли параметр« Выполнить полный GC в снимке кучи »).Как я и ожидал, в куче нет экземпляра Class Loader, нет связанных объектов и классов, они собирают мусор.

С другой стороны, когда я не использую "Run GC "кнопка, но сделайте много снимков кучи с " Выполнить полный сборщик мусора в снимке кучи " опция выбрана (с" Сохранить объекты, удерживаемые только сильными ссылками " "подопция), я всегда вижу свой экземпляр Class Loader на снимке вместе со связанными объектами и классами.Они не были мусором!Почему?

1 Ответ

0 голосов
/ 16 февраля 2019

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

...