이번에 메모리 프로파일링 업무가 생겨서 프로파일링 툴을 찾다가 우연히 JVMPI, JVMTI에 대해서 알게 되었다. ( JBossProfiler 가 이를 이용한다. )
JVMPI는 5.X 대까지 지원되면 API로
JVM의 Event 발생시 실행될 Callback 함수를 등록하여 해당 Event가 발생시 해당 CallBack 함수를 호출해 주게 하는 API이다.
일단 C계열 언어로 작성을 해야 하므로 , dll 혹은 so 파일을 JVM 환경변수에 등록해 주는 방식이다.
따라서 Object 생성등의 이벤트를 Capture한다면 Class Instance Capture 등을 할 수 있는 것으로 보인다.
http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi/jvmpi.html
이것이 5.X가 되면서 JVMTI라는 기술로 발전한다.
( 5.X에서는 그래도 JVMPI를 지원한것으로 보이는데 6.X 대에는 아예 JVMTI만을 지원하는 것으로 보인다. )
http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html
아직 JVMTI에 대해서는 아직 문서를 살펴보지는 않았는데 ( 지선 대리 얘기로는 Java Interface를 제공한다고 하는데...^^ )
개념적으로는 비슷하지 않을까.^^
그동안 Jeniffer 등 모니터링 툴의 작동 원리에 대해서 잘 모르고 있었는데
조금은 그 원리를 알듯하다.
'개발자세상 > 자바세상' 카테고리의 다른 글
ClassPath에 있는 파일 가져오기. (0) | 2009.03.18 |
---|---|
JavaFX? (0) | 2009.02.03 |
Process class 사용시 주의점 (0) | 2008.11.07 |
Java One 2008 방문 후기를 보고 (0) | 2008.06.26 |
BPM에 빠져 들다. (0) | 2007.07.11 |