일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- write by chatGPT
- 자바
- spring data jpa
- Database
- 고전역학
- spring integration
- chatGPT's answer
- Java
- 시스템
- 소프트웨어공학
- 데이터베이스
- python
- JVM
- GPT-4's answer
- 웹 크롤링
- write by GPT-4
- 자바암호
- flet
- 코틀린
- 유닉스
- 역학
- 자바네트워크
- android
- NIO
- 파이썬
- 리눅스
- 인프라
- oracle
- kotlin
- jpa
- Today
- Total
기억을 지배하는 기록
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의 보다 자세한 내용은 http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi/jvmpi.html 을 참고 하십시오. |
'오래된글 > Articles' 카테고리의 다른 글
VM 분석 : Chapter 1 Performance - 2 / HAT (0) | 2018.04.19 |
---|---|
VM 분석 : Chapter 1 Performance - 2 / -Xrunprof 옵션 (0) | 2018.04.19 |
VM 분석 : Chapter 1 Performance - 2 / -Xverbosegc(HP 머신) (0) | 2018.04.19 |
VM 분석 : Chapter 1 Performance - 1 (0) | 2018.04.19 |
Servlet 3.0 Async Processing for Tenfold Increase in Server Throughput (0) | 2018.04.19 |