응답시간 프로파일링 메모리 프로파일링

Download Report

Transcript 응답시간 프로파일링 메모리 프로파일링

개발 테스트 도구
G1_QA팀
목차
1. TPTP
2. PMD의 CPD
3. JDepend
4. 시연
1. TPTP
(Eclipse의 Test and Performance Tools Platform)
• 소스 레벨의 분석을 위한 프로파일링 툴
• 프로파일링은 크게 응답시간 프로파일링과 메모리 프로파일링으로
구분된다.
응답시간 프로파일링
메모리 프로파일링
CPU 시간과 대기 시간을 측정하
메모리 사용량을 분석하여 클래스
여 클래스 및 메소드의 응답 속도
및 메소드의 메모리 사용량과 메
를 측정하는 것
모리 누수를 측정하는 것
1. TPTP
• 오픈 소스 프로젝트이며 테스트 및 성능 측정 툴에 대한 프레임워크
및 서비스를 제공하는 것을 주요 목적
• TPTP는 다시 하위에 네 개의 프로젝트가 존재
1.
TPTP 플랫폼 프로젝트
2.
모니터링 툴 프로젝트
3.
테스팅 프로젝트
4.
트레이싱 및 프로파일링 툴 프로젝트
1. TPTP Example
• 프로 파일링 모드에서 응용 프로그램을 시작
1. TPTP Example
• 자바 프로그램 인자 설정
• 프로 파일링 필터 설정하기
1. TPTP Example
• 실행 시간 분석 옵션
1. TPTP Example
• 프로 파일링 실행 옵션을 설정 옵션 동작을 편집을 선택
1. TPTP Example
• 응용 프로그램을 실행
1. TPTP Example
• 실행 통계보기를 사용하여 성능 곳 파악
2. PMD의 CPD
• CPD 목적 : Copy/Paste탐지
• PMD 플러그인은 CPD(Copy Paste Detector)라고 하는 기능을 제공하
는데, 이것은 중복된 코드를 찾아낸다.
• Eclipse 플러그인 URL : http://pmd.sourceforge.net/eclipse/
• 사용예제 사이트링크 : http://erfile.tistory.com/entry/CPDJDepend
2. PMD의 CPD
• 프로젝트에 우클릭하여
PMD의 Find Suspect
Cut AND Paste..를 선택
2. PMD의 CPD
• CPD를 실행했다면, report 폴더가 Eclipse 루트 디렉토리에 생성되고,
여기에는 cpd.txt라는 파일이 포함된다. 이곳에 모든 중복 코드들이
나열된다.
3. JDepend
• Eclipse의 무료 plug-in으로 의존성 분석을 제공 한다.
• 소스 코드의 복잡도를 분석하여 복잡도가 높은 소스 코드를 개선
하는 용도로 활용
• 비슷한 툴로는 sonarj(http://www.hello2morrow.com)와
structure101(http://www.headwaysoftware.com) 가 있으나 둘
다 상용화 툴이다.
3. JDepend
• 소스 코더 폴더를 우클릭 하여
Run Jdepend analysis선택
• 왼쪽 위에는 패키지
들 (소스와 패키지)
• 왼쪽 아래에는
그래프(Metrics)
• 오른쪽에는 종속성
관련 뷰
3.Jdepend – 종속성 관련 뷰
• 사이클을 가지고 있는 패키지,
• 선택한 패키지에서 사용하고 있는 패키지
• 선택한 패키지를 사용되고 있는 패키지
• CC - Concrete Class의 갯수 이다.
• AC - Abstract Class, 추상 클래스나 인터페이스의 갯수
• Ca :: Afferent Couplings,현재 패키지의 클래스들에 종속성을 가지는 패
키지의 개수
• Ce :: Efferent Couplings, 현재 패키지의 클래스들이 종속하고 있는 패키
지의 갯수
3.Jdepend – 종속성 관련 뷰
• A - 추상화 정도를 나타낸다.(0 ~ 1의 값)
• I - 변화에 대한 탄력도를 나타낸다. (0 ~ 1의 값)
• D - Main Sequence로 부터의 거리를 나타낸다. (0 ~ 1의 값)
# Main Sequence 이상적인 패키지로 완전 추상적이면서 안정적이거나 완전 구체적이면서 불안정한 패키지
• Cycle - 패키지들 상호 간에 종속성을 가지고 있을 때 발생한다.
이 값이 많을 수록 안좋은 상황
4. 시연