В настоящее время я запускаю многопользовательское JVM-приложение (которое включает классы groovy), и я наблюдал странное поведение.JVM-память очищена без какой-либо деятельности GC
Запуск приложения и обновление моих классов Groovy (правильная очистка информации о метаклассе и т. Д. - я знаю, что утечки нет), поэтому я знаю, что есть несколько классов, которые могут быть собраны из permgen (обычно я наблюдаю, что permgen isn Я собираюсь с нетерпением - я считаю, что это просто полный GC, который собирает перген, поэтому это не необычно для этого состояния). Странность заключается в том, что, если я оставлю приложение без активности, примерно через час произойдет внезапное падение использования памяти (куча и пермен, но наиболее выраженная в пермгене), но visualvm сообщает, что активность GC/CPU не произошла ,
Ниже приведен скриншот моего VisualVM входа
Мой вопрос, как есть такая большая капля (~ 80MB) в PermGen, не зарегистрированного GC деятельности? visualvm обычно нормально записывает активность GC/CPU.
У вас есть журналы gc для этого времени? Они показывают, что происходит? –
У вас нет журналов за базовым графиком - верхний левый график отображает активность CPU/GC, и, как вы можете видеть, нет активности, соответствующей большому падению использования перментонов (вверху справа) - я буду больше смотреть в gc logs, но visualvm обычно хорошо отображает GC/CPU в остальное время. – rhinds