다음과 같은 테스트케이스를 프로파일링 해봤습니다.

package kr.pe.okjsp.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;

import junit.framework.TestCase;

public class DateUtilTest extends TestCase {
 public void testIsValidDate() {
  assertTrue(isValidDate("20080229"));
  assertFalse(isValidDate("20090229"));
 }

 public boolean isValidDate(String date) {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
  String format = null;
  try {
   format = sdf.format(sdf.parse(date));
  } catch (ParseException e) {
   e.printStackTrace();
  }
  return date.equals(format);
 }
}


TPTP를 이용해서 나온 프로파일링 퍼스펙티브의 좌측 Profiling Monitor에서 오른 버튼을 눌러나오는 Open With > UML2 Class Interactions 메뉴를 선택하면 다음과 같이 시퀀스 다이어그램이 나옵니다.

사용자 삽입 이미지


빨간 포인트가 실행시간이 가장 오래 걸리는 부분임을 알 수 있지만, 그래프의 길이가 불필요하게 긴 듯 합니다.
홈 아이콘을 클릭한 뒤에 제일 좌측에 있는 TestSuite 클래스를 가려보겠습니다. 오른버튼 클릭해서 Hide selected lifeline 을 선택합니다.
사용자 삽입 이미지

이런 식으로 TestResult 와 TestResult$1 을 가리면 다음과 같은 그래프를 볼 수 있습니다.
사용자 삽입 이미지

가려진 클래스를 다시 보게 하려면 우측 상단의 하얀 역삼각형 ViewMenu 를 선택하고 Hide/Display Patterns... 메뉴를 클릭합니다.
사용자 삽입 이미지
여기에서 체크를 지워주면 보입니다.
사용자 삽입 이미지

천천히 하나씩 알아가야죠. ^^
TPTP
Test and Performance Tools Platform
TPTP는 테스트 툴과 퍼포먼스 툴의 플랫폼 프로젝트입니다. 자바 프로그램 실행시 CPU, 메모리 등과 객체 호출 및 인스턴스의 갯수 상태를 확인하기 위해 만들어진 것입니다.
자바 VM 뿐만 아니라 OS 등과 맞물려 각종 정보를 수집합니다.

http://www.eclipse.org/tptp
Windows와 Linux 용 all-in-one 버전을 받아서 설치하면 간편하게 설치됩니다. Active Control Server의 설치가 자동으로 되기 때문이죠. 맥용은 없습니다. ㅡㅡ;

Run, Debug 에 이은 Profile 기능을 이용하면 다음과 같이 Monitor 탭이 생깁니다. Execution Time analysis 는 클래스, 메소드 간의 실행시간 등을 기초로 하여 실행과정을 보여줍니다.
사용자 삽입 이미지

실행을 하면 Profiling Manager View가 열립니다.
사용자 삽입 이미지

Execution Time Analysis를 클릭해서 열린 보다 구체적인 내용입니다.
사용자 삽입 이미지

아래 탭을 클릭하면 다른 내용들을 볼 수 있습니다. Call Tree 탭을 클릭한 경우 다음과 같이 CPU 소모비율도 확인 가능합니다.
사용자 삽입 이미지

Profiling Manager 에서 오른클릭메뉴로 UML2 Class Trace를 선택하면 시퀀스다이어그램을 볼 수 있습니다. 이거 대박이죠. ^^
사용자 삽입 이미지

+ Recent posts