2016-10-26 12 views
1

Java 용 (상대적으로) 새로운 내장 성능 모니터/프로파일 러는 Mission Control입니다.Java Mission Control 및 Flight Recorder는 VisualVM과 동일한 기능을 제공합니까?

도구 체인 [미션 컨트롤 + 비행 레코더] 수집하고 로컬로 실행하고있는 Java 응용 프로그램에서 데이터를 분석하는 개발자와 관리자 수 있습니다 : 그들은 성능 안타 (2 % 미만)을 들이지 않고 생산에 사용할 수있는 Oracle docs advertise 또는 프로덕션 환경에서 배포 할 수 있습니다.

내가 그것으로 인해 발생의 성능 오버 헤드를 수행하는 추정 훈계로하지만 결코 프로덕션 환경에서, 지금 몇 년 동안 jvisualvm (VisualVM과) 사용하고 있습니다.

그래서 묻습니다. MC/FR이 성능을 저해하지 않도록 허용하는 Mission Control (및 Flight Recorder)과 VisualVM 간에는 다른 점이 무엇입니까? 또는 VisualVM에서 제공하는 특정 기능을 포함하지 않습니까?

답변

1

메소드 프로파일 링의 주요 성능 차이는 샘플링을 사용하고 샘플링 간격 당 몇 개의 스레드 만 샘플링한다는 것입니다. AsyncGetCallTrace와 유사한 접근 방식을 사용합니다 (예 : http://psy-lob-saw.blogspot.com/2016/06/the-pros-and-cons-of-agct.html 참조).

저는 MC/JFR과 함께 작업하므로 VisualVM이 샘플링 프로파일 링을 수행하는 방식에 익숙하지 않지만 동일한 방법을 사용하지 않습니다.

MC/JFR은 HotSpot JVM에 깊이 통합 된 데이터 수집 엔진을 가지고 있으며 VisualVM은 외부 API/MXBeans를 사용합니다. 또한 JFR이 성능 오버 헤드를 낮추는데 도움이됩니다. 일반적으로 JFR은 100 % 정확하지만 응용 프로그램을 느리게하고 실제 동작에 영향을 줄 수있는 데이터를 수집하는 대신 핫 스폿을 찾기 위해 설계되었습니다. 이는 메소드 및 할당 샘플링뿐 아니라 특정 임계 값 이상의 이벤트 만 기록되는 대기 이벤트 (대기/절전/블록)에 대한 기타 정보에 대한 것입니다. VisualVM을 비교하는 방법에 익숙하지 않습니다.

그 외에도 두 도구는 서로 다른 기능 세트를 가지고 있습니다. 둘 다 다른 기능 세트가 없으며 다른 도구의 상위 세트는 없습니다.