Tomcat Webserver로 작성된 Java 응용 프로그램이 있습니다. 자바 임무 컨트롤을 사용하면 스트레스 상황에서 GC가 매우 우세하다는 것을 압니다. GC주기마다 CPU는 매우 높아집니다. 알아두면 좋겠지 만, 각 GC주기가 정확히 무엇을하고 있는지, 특히 어떤 개체가 승격되고 있는지, 어떤 개체가 해제되는지 알고 싶습니다. 해방 된 사물들에 대해서, 나는 그들이 어떤 유형인지뿐만 아니라 그들이 창조 된 곳을 알고 싶다. 단지 많은 것들이 생성 될 수 있기 때문에 내가 바이트 [] 또는 문자열을 많이 가지고 있음을 알고 있지만 분명히 도움이되지 않습니다. 그러나 단지 몇 개만 제 통제하에 있으며 지배적입니다.Java GC가 높습니다. 어떤 개체가 GCed인지 찾는 방법입니다.
누구든지 도구 또는 방법을 알고 있습니다.
미리 감사드립니다.
[비행 기록] (https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr005.html)을 사용 했습니까? – nullpointer
예, Flight Recorder는 GC가 CPU 스파이크를 일으킨다는 것을 알았습니다. 그러나 JFR은 내가 필요로하거나 설명하는 정보를 제공하지 않습니다. 또는 적어도 해당 정보를 얻는 방법을 모르겠습니다. –
JFR 프로필과 함께 GC 로그가 원인을 알기에 충분할 수 있습니다. – nullpointer