2010-12-10 2 views
0

asm의 java 바이트 코드 도구를 사용하여 주어진 바이트 코드 (클래스 파일, 주 코드에서 주 함수를 가짐) 런타임을 측정하는 방법이 있는지 궁금합니다.asm Instrumantation을 사용하여 자바 프로그램 런타임 측정하기

측정 값은 가능한 한 정확해야하며, 가능한 경우 나노초 단위 여야합니다.

감사

+0

무엇이 필요한지 물어볼 수 있습니까? – khachik

+0

그래, 주어진 바이트 코드를 가져 와서 분석을하고있는 프로젝트에서 일하고 있습니다. 주요 목표는 시간이 지남에 따라 객체에 대한 접근을 추적하고 히트 맵에서이를 표현하는 것입니다. 나노 시간을 요구하는 이유는 히트 맵에서 훨씬 더 잘 보이기 때문에 해상도가 더 좋고 프로그램의 일부 "단계"를 능동적으로 볼 수 있습니다. – RanZilber

답변

1

은 System.nanoTime를 추가하는 것을()을주의 할 등을 측정 코드의 섹션으로 300 나노 초 이상을 추가합니다.

ASM에서도 가능하지만 원하는 결과를 얻지 못할 것으로 생각됩니다.

이 메서드의 성능 테스트를 해 보았습니까? 평균 통화 시간을 확인하기 위해 2 초 동안 통화합니다. 나노초만큼 오래 걸리면 정확하고 안정적 ​​일 수 있습니다.

+0

글쎄, 난 아무 것도 입력에 바인딩되어 있지 않습니다. 어떤 프로그램이든지 심지어 한 시간 씩 실행하는 프로그램 일 수도 있습니다. 그 시간을 한 번에 실행하고 싶습니다. 나는 구걸 할 때와 끝날 때를 기다리는 코드의 시작 부분에 줄을 넣고 싶다. 가능한가? – RanZilber

+0

프로필이 꽤 잘하는 것처럼 들립니다. 처음으로 응용 프로그램을 프로파일 링 해 보셨습니까? –

+0

프로파일 링이란 무엇입니까? – RanZilber