하나의 함수 내에서 실행 된 개별 바이트 코드 명령어를 계산하기 위해 ASM을 사용하려고합니다. 유사한 작업을 수행 할 수있는 ByCounter 도구가 있음을 알았지 만 소스 코드에 액세스 할 수 없습니다.자바 카운트 개별 바이트 코드 명령어가 실행되었습니다.
Java 클래스 라이브러리는 클래스, 필드, 메소드를 구현할 수 있지만 개별 바이트 코드 명령어를 인스트루먼트하기위한 예제는 찾을 수 없습니다 (ByCounter에서 가능하지만 가능할 수도 있음).
JVMTI와 같은 도구가 더 적합한 경우 유용한 정보입니다.
도움 주셔서 감사합니다.
? 프로그램을 프로파일 링하거나 최적화하려고한다면, 바이트 코드는 실제로 JIT가 실행을 끝내는 것이 아닙니다. 실행시 완전히 다른 배열의 원시 코드로 모든 것을 다시 작성합니다. –
메소드의 ['instructions'] (http://asm.ow2.org/asm50/javadoc/user/org/objectweb/asm/tree/MethodNode.html#instructions)에 액세스하고 [' 크기'] (http://asm.ow2.org/asm50/javadoc/user/org/objectweb/asm/tree/InsnList.html#size--)? –
@LouisWasserman 다른 코드 경로를 따라 메소드에서 얼마나 많은 명령어가 실행되는지보고 싶습니다. 나는 그것이 불완전한 방법이라는 데 동의하지만 몇 가지 기본 척도를 얻는 것은 시작이다. – Mike