이번에 메모리 프로파일링 업무가 생겨서 프로파일링 툴을 찾다가 우연히 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
Posted by headiron
,