VisualVM으로 자바 프로그램을 모니터링하면서 가비지 수집기의 동작에 흥미로운 패턴을 발견했습니다. '정상적인'가비지 콜렉션 실행 직후에 GC가 두 번째, 훨씬 더 많은 CPU 집약적 인 실행을 수행하여 추가 효과가없는 것으로 보입니다 (보다 적극적인 실행 이후 사용 된 힙은 더 가벼운 달리기 후입니다).덜 적극적인 공격을 한 직후에 Java 가비지 수집기가 공격적인 실행을하는 것처럼 보이는 이유는 무엇입니까?
가비지 콜렉터 실행 및 해당 힙 사용 변경 사항을 볼 수있는 VisualVM 출력에 표시했습니다.
내 질문은 기본적으로 여기에 왜 일을 가비지 컬렉터가 무엇인가? 충분한 메모리가있을 때 실제로 CPU 사용량이 많은이 실행을 시도하는 이유는 무엇입니까? 아니면 그래프를 잘못 해석합니까?
프로그램의 성능은 실제로 영향을받지 않습니다. 단지 궁금합니다.
나는 여기 왜 아무도 "왜"대답 할 수 있을지 의심 스럽다. 찾아 내기 위해서는 아마도 JVM 소스 코드를 읽어야 할 것이며, 언제든지 변경 될 수 있습니다. –
@JimGarrison 질문에 대답하기에 JVM을 사용하는 SO 사용자가 한 명 이상 있어야합니다. – bdesham