컴파일 된 .class 파일에는 전체 Java 클래스에 해당하는 바이트 코드가 들어 있습니다. 그러나 실행 중에 로직 및 입력에 따라 일부 바이트 코드는 여러 번 실행되지만 일부는 실행되지 않을 수도 있습니다. Java 프로그램의 수명 동안 실행 된 해당 바이트 코드의 추적을 얻을 수있는 방법이 있습니까?Java 프로그램에서 런타임에 실행되는 바이트 코드는 어떻게 얻을 수 있습니까?
편집 : 사용 사례
은 내가 사용 사례가 도움이 될 수 있습니다 생각합니다. 프로그램을 실행 한 후 실행 된 바이트 코드 명령어의 빈도를 계산하고 싶습니다 (예 : 10 회 수행). 이 목적을 위해 사용할 수있는 프로파일 러 또는 다른 도구가 있습니까?
프로필러를 사용해 보셨습니까? –
EMMA 코드 적용 도구 (또는 다른 유사한 계측 라이브러리)를 살펴볼 수 있습니다. IDE와 통합하여 소스 레벨에서 어떤 코드 행을 실행했는지 표시 할 수 있습니다. – slipperyseal
위의 두 가지 사항에 모두 동의하십시오. 전체 트레이스를 가져 오면 - 당신을 위해 할 수있는 계장 된 JVM을 발견하면 - 아주 느리게 돌아가고 분석하기가 대단히 느릴 거대한 로그 파일을 생성 할 것입니다. 프로그램의 어느 부분이 얼마나 자주 실행되고 있는지를 보여주는 코드 커버리지 도구. 통계적 프로파일 러는 특히 런타임의 특정 기간에만 집중할 수있는 이론적으로는 덜 정확하지만 실행 시간을 단축 시키므로 실제로는 특히 다중 스레드 코드에서 훨씬 더 정확합니다. – keshlam