Eclipse에서 Profiling하기
Table of Contents
Introduction
애플리케이션을 개발하다보면 어느 부분에서 실행속도의 저하가 발생하는지를 분석하고자할 때가 있다. Eclipse Profiler는 개발시 이와 같은 필요성을 충족시켜주기 위한 Eclipse 플러그인이다. Eclipse Plugin은 Profiling외에도 산출물을 기반으로 소스 코드를 분석할 때 유용하게 사용할 수 있다. 새로운 프로젝트에 투입되어 해당 프로젝트의 소스코드를 새롭게 분석해야하는 상황이 발생한다면 이 Plugin을 이용하여 분석할 경우 많은 도움을 받을 수 있다.
Eclipse Profiler는 다음과 같은 경우 유용하게 사용할 수 있다.
- 애플리케이션을 개발한 다음 소스 코드에 대한 Tuning을 하고자할 때
- 다른 개발자가 개발한 소스코드를 분석 및 리팩토링하고자할 경우
- Interface 기반으로 개발되어 있는 소스를 분석하고자할 경우. 향후 새롭게 적용될 통합 플랫폼은 Spring 프레임워크 하에서 Interface 기반으로 개발될 가능성이 더 높다. Interface 기반으로 애플리케이션을 개발할 경우 Eclipse를 이용하더라도 소스 코드를 분석하는 것이 힘들다.
Eclipse Profiler 설치
Ecilpse Profiler 설치에 관한 기본적인 내용은 Eclipse Profiler Document 문서를 참고하여 설치하는 것이 가능하다.
설치 과정에 대하여 간략하게 살펴보면 다음과 같다.
- Eclipse Profiler Site에서 최신 소스를 다운 받는다. 만약 Eclipse 3.1 이상을 사용하고 있는 개발자라면 Eclipse Profiler Eclipse 3.1 패치버전 다운로드에서 Eclipse 3.1 패치버전을 다운 받는다.
- 다운받은 Eclipse Profiler의 압축을 풀어 ECLIPSE_HOME/plugins 디렉토리에 복사한다.
- 압축을 푼 Ecilpse Profiler 하위의 디렉토리에서 ProfilerDLL.dll 파일을 JAVA_HOME/jre/bin 디렉토리에 복사한다.
- 압축을 푼 Ecilpse Profiler 하위의 디렉토리에서 commons-lang.jar, jakarta-regexp.jar, profiler_trace.jar을 CATALINA_HOME(TOMCAT_HOME)/bin 디렉토리에 복사한다.
이상의 과정을 거쳐 Eclipse에 Eclipse Profiler를 사용하기 위한 과정을 완료하였다.
WTP에서 Eclipse Profiler 설치 및 사용방법
WTP 기반하의 Tomcat 내에서 Eclipse Profiler를 이용하는 과정은 다음과 같다.
- WTP에서 WTP를 다운받아서 설치한다.
- Eclipse의 Windows >> Preferences >> Java >> Installed JREs로 이동한다.
- 현재 사용하고 있는 JRE 버전이나 새로운 버전의 JRE를 추가하면서 Default VM Arguments에 다음 라인을 추가한다.
 | -Xms128m -Xmx512m -XrunProfilerDLL:1 -Xbootclasspath/a:jakarta-regexp.jar;profiler_trace.jar;commons-lang.jar -D_PROFILER_PACKAGE_FILTER=A%MAINCLASS%;Msun.;Mcom.sun.;Mjava.;Mjavax.;Morg.apache. -D_PROFILER_TIMING_METHOD=1 |
- CATALINA_HOME(TOMCAT_HOME)/bin에 복사한 세개의 jar파일을 JRE에서 사용가능하도록 다음 화면과 같이 추가해준다.
 | commons-lang.jar, jakarta-regexp.jar, profiler_trace.jar 세개의 파일을 반드시 CATALINA_HOME(TOMCAT_HOME)/bin 디렉토리 하위에 복사할 필요는 없이 원하는 특정 디렉토리에 복사해도 상관없다. |
- 먼저 WTP 기반의 서버를 하나 추가한다. Windows >> Preferences >> Server >> Installed Runtimes로 이동한 다음 사용하고자하는 WAS를 추가한다. WAS를 추가할 때 JRE 항목에 앞에서 설정한 JRE를 사용하도록 다음과 같이 설정해준다.
- 마지막으로 Profiling을 하기 위한 프로젝트를 설정하는 과정이 남았다. Eclipse 메뉴에서 Run >> Run..으로 이동하면 다음 화면과 같이 Profling을 하기 위한 항목이 추가되어 있다. 이 항목 중 "Remote Profiler" 항목에서 새로운 설정을 다음과 같이 추가해준다.
- Remote Profiler에서 환경 설정을 완료한 다음 Run 버튼을 클릭하여 Profiling을 시작한다. WTP Server와 Profiling 을 모두 시작한 다음 Profiler Perspective로 이동하여 다음 화면과 같은 결과를 얻는다면 모든 설정이 정상적으로 완료된 것이다.
이상의 과정을 통하여 Eclipse Profiler를 WTP에서 사용하기 위한 모든 준비가 완료되었다. 다음은 이렇게 설치한 Eclipse Profiler를 사용하기만 하면 된다.
Eclipse Profiler를 이용한 Profiling
Eclipse Profiler를 이용하기 위한 모든 설정이 완료되었으므로 Eclipse Profiler를 이용하여 소스를 Profiling 해보도록 하겠다.
- Profiling 하기 위하여 설정한 프로젝트의 특정 URL로 브라우저를 통하여 접근한다. 이와 같이 실행하면 요청 URL에 대한 다음과 같은 Profiling 정보를 얻을 수 있다.
추가 자료
참고문헌
버그 & FIX
JDK5.0을 사용할 경우 : java.lang.ClassFormatError와 같은 예외가 발생한다. 거기에 대한 이야기는 다음 URL을 참고하자!!
http://forum.java.sun.com/thread.jspa?threadID=515187&messageID=2615277
문서에 대하여
최초작성자 : 박재성
최초작성일 : 2005년 5월 27일
버전 : 1.0
문서이력 :
- 2006년 5월 27일 박재성 : 문서 생성 및 문서 목차 정리
Add Comment