JVMTI을 사용하여 구현 한 프로파일 러에 대해 모든 Java 메소드의 실행 시간을 측정하고 싶습니다. JVMTI의이 이벤트 제공 :JVMTI로 Java 실행 시간 측정
사용 방법 :
MethodEntry
MethodExit
그래서이 구현하기가 매우 쉬울를, 그러나 나는 API이 note 건너 온 항목 또는 종료 이벤트는 많은 플랫폼에서 성능을 크게 저하 시키므로 성능에 중요한 사용 (예 : 프로파일 링)에 대해서는 권장되지 않습니다. 이러한 경우에는 바이트 코드 계측을 사용해야합니다.
그러나 프로파일 링 에이전트는 헤드리스로 작동합니다. 즉, 수집 된 데이터가 직렬화되어 소켓을 통해 결과를 표시하는 서버 응용 프로그램으로 전송됩니다. 바이트 코드 계측을 사용하여 이것을 어떻게 실현해야합니까? 나는 여기에서 어떻게 나아갈 지 혼란 스럽다. 누군가가 나에게 설명 할 수 있을까? 만약 내가 전략을 바꾸어야한다면 어떻게 될까? 아니면 내가 어떻게이 문제에 접근 할 수 있을까?
자신의 프로파일 러. VisualVM 및 YourKit과 같이 기존 프로필이 어떻게 작동하는지 살펴보고 사용자가 이미 필요한 것을 수행하지 않는지 확인하는 것이 좋습니다. –
그들은, 나는 다만 그것을 나 자신하고 싶다. 하지만 VisualVM은 힌트 일 수 있습니다. 어떻게해야 볼 수 있습니다.하지만 내 교훈에 따르면 Java 에이전트를 사용하고 원시 에이전트가 아닙니다. –
VisualVM은 소스를 얻을 수있는 Java 에이전트를 사용합니다. YourKit는 소스를 얻을 수없는 원시 에이전트를 사용합니다. 데이터를 기록하는 것은 데이터의 시각화를 얻는 것만 큼 어렵지 않습니다. YourKit이 시각화를 수행하는 방법을 살펴 보겠습니다. –