2011년 5월 25일 수요일

VM 분석 : Chapter 1 Performance - 2 / JVMPI

PLT 1.2 분석 도구

JVMPI(Java Virtual Machine Profier Interface)
JVMPI 는 C로 된 API이고, Native 방식으로 만들어서 VM 시작시에 지정해주면 Native로 만들어진 부분으로 이벤트가 전달 되도록 되어있는 구조이다.
J2SDK을 설치 했다면 “[JAVA_HOME]incluedjvmpi.h” C 해더파일을 찾을 수 있다.
SUN에서는 다음과 같은 샘플을 제공한다.
http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi/jvmpi_example.zip
샘플에는 myprofiler.cc라는 샘플 소스가 존재하고 Solaris, win32 용으로는 컴파일된 라이블러리가 제공된다.

다음은 win32용 JVMP을 사용하는 방법이다.
1. win32용 라이블러리 myprofile.dll 파일은 [JAVA_HOME]bin 디렉토리에 카피한다.
2. 다음과 같은 샘플 프로그램을 작성한다.
public class whileUnit {
public whileUnit() {
}
public void exec() {
int A = 0;
int T = 0;
while(true) {
A++;
int B = 0;
while(true) {
B++;
T = A+B;
if(B == 10000) break;
}
if(A == 10000) break;
}
}
public static void main(String[] args) {
whileUnit client = new whileUnit();
client.exec();
}
}


3. java -Xrunmyprofiler whileUnit 실행
4. whileUnit을 실행시 로드되는 클래스의 순서적으로 보여준다.
PS 1 : JVMPI을 사용하기 위해서는 C프로그래밍 능력이 필요하다. 그리고 생각보다 원하는 정보를 얻기가 어렵다고 할 수 있다. JVMPI을 이용한 상용 분석 TOOL이 많이 나와 있다.
PS 2 : JVMPI의 보다 자세한 내용은

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...