현재 길게 실행되는 JVM 응용 프로그램 (그루비 클래스 포함)을 실행하고 있으며 이상한 동작을 관찰했습니다.GC 작업없이 JVM 메모리가 정리되었습니다.
응용 프로그램을 실행하고 내 Groovy 클래스를 업데이트합니다 (메타 클래스 정보를 올바르게 정리하는 등 - 누출이 없음). 그래서 permgen에서 수집 할 수있는 여러 클래스가 있음을 알게되었습니다 (일반적으로 permgen isn을 관찰합니다. 열심히 모았습니다. 나는 permgen을 모으는 풀 GC 일 뿐이라고 믿습니다. 이상한 점은, 아무런 활동이없는 상태에서 응용 프로그램을 실행하면 약 1 시간 정도 지나면 메모리 사용량이 갑자기 감소하지만 (힙 및 퍼텐겐이지만 permgen에서는 가장 많이 발음됩니다), visualvm은 GC/CPU 활동이 일어나지 않았다고보고합니다 . 어떻게 등록 된 GC 활동과 permgen에 그런 큰 방울 (~ 80메가바이트는) 다음
내 VisualVM과의 스크린 샷
내 질문 로깅이있다? visualvm은 GC/CPU 활동을 기록합니다.
그 동안 gc 로그가 있습니까? 그들은 무슨 일이 일어나고 있는지 보여줄 수 있습니까? –
기본 차트를 벗어나는 로그가 없습니다. 왼쪽 상단 그래프는 CPU/GC 활동을 나타내며, 볼 수 있듯이 permgen 사용률이 큰 드롭에 해당하는 활동은 없습니다 (오른쪽 상단). gc 로그이지만 visualvm은 대개 GC/CPU를 꽤 정확하게 그려줍니다. – rhinds