넷빈(netbeans) 6.8에서 프로파일링(profiling) 사용법2 - Advanced

0

Written on 오후 7:21 by 강여사(J.Y.Kang)

프로파일링은 프로젝트의 규모가 클수록 발생하는 오버헤드가 많아지기 때문에 필요한 부분을 적절히 기획하여 실행하는 것이 중요합니다.

앞서 넷빈에서의 프로파일링 기본 사용에 이어 이번에는 좀더 세분화된 방법에 대해 알아보고자 합니다.

1. 이번에 알아볼 내용은 루트 메소드 추가 입니다.

다시 프로파일링 선택

이번에는 CPU 프로파일링에서 전체 어플리케이션이 아닌 부분(Part of application)을 선택하고, 프로파일링을 진행할 Root 메소드를 선택합니다.

루트메소드 선택은 define 링크를 누르면 나타나는 팝업창에 선택가능합니다.

팝업창에서 Add from Project 클릭 루트 메소드 선택

해당 프로젝트(AnagramGame)의 소스쪽의 com.toy.anagrams.lib.WordLibrary 를 체크하고 확인을 누릅니다

위에 선택한 내용이 표시됨을 확인할 수 있습니다. 이러한 루트 메소드의 지정은 아래 노트에도 나오듯이 소스 편집기에서 직접 추가할 수도 있습니다. (편집기에서 오른쪽 마우스 클릭 - 프로파일링- 루트 메소드 추가)
본 창으로 돌아오면 Part of application 버튼 옆에 1 root method ...edit 라고 표시됩니다.

실행 CPU 프로파일링이 진행되면서 게임 프로그램이 시작되고 (뒤쪽의 프로파일링 패널에서 라이브 결과를 누르면 루트 메소드로 지정한 WordLibrary 에서의 프로파일링만 나타나는 걸 확인할 수 있습니다)
역시 게임 프로그램을 종료하면 스냅샷 여부에 대한 확인창이 뜹니다.

예 선택

CPU 스냅샷 입니다.
2. 이번에는 프로파일링 포인트 삽입에 대해 알아보겠습니다.

프로젝트창으로 와서 해당 프로젝트에서 UI를 담당하고 있는 Anagram.java의 소스를 엽니다.

소스의 line 55 에 가면 initComponent() 메소드가 있습니다. 해당 메소드에서 마우스 오른쪽을 클릭하고 profile - insert profiling point 를 선택합니다. 그럼 그림과 같은 새 프로파일링 창이 뜨는데 결과 초기화를 선택하고 다음을 누릅니다.
프로파일링 포인트에 대한 지정 이름과 기타를 확인하고 마침을 누릅니다.
다시 라인 64의 screensize.height 부분에서 위와 같은 방법으로 마우스 오른쪽을 클릭, profile- insert profiling point 를 선택합니다.
이번에는 대상 스냅샷(스냅샷 찍기)를 선택하고 다음을 누릅니다.
역시 해당 내용을 확인하고 마침을 선택합니다.
소스코드로 돌아와보면 그림처럼 파란색으로 2부분이 프로파일링 포인트로 선택되었음을 알 수 있습니다. (이 2부분이 실행될 때 각각 해당 프로파일링(결과초기화/스냅샷 찍기)가 진행될 것입니다.
다시 프로파일링 선택 (profile)
CPU 프로파일링에서 Entire Application (전체 응용 프로그램)으로 바꾸고 아래쪽 프로파일링 포인트 사용을 체크한 후 이 내용을 다시 확인하려면 활동중인 프로파일링 포인트 보기를 클릭하면 아래 그림과 같이 작업된 2개의 포인트가 보입니다.

실행

역시 게임 프로그램이 시작되고 아래 프로파일링 포인트 창이 출력됩니다.

2개의 포인트에서 결과가 각각 오른쪽에 링크로 제공됩니다.
첫번째 보고를 누르면 결과 초기화에 대한 내용이 표시됩니다.
두번째 보고 링크를 누르면 대상 스냅샷에 대한 내용과 함께 스냅샷 바로가기 링크가 나타납니다.
포인트에서 지정된 바에 따라 진행된 스냅샷입니다. (스냅샷 링크 클릭)
맨 위에 initComponent() 에서 마우스 오른쪽을 클릭하면 소스로 이동 메뉴가 있습니다. 클릭
소스편집기에 initComponent() 메소드가 바로 제시됩니다.
이상 프로파일링에 대한 보다 세분화된 방법에 대해 알아봤습니다.

이후로 여러 문제 있는 프로젝트들을 통해 넷빈의 프로파일링이 어떻게 찾아내는 지 하나씩 살펴 보도록 하겠습니다.

계속...^^

If you enjoyed this post Subscribe to our feed


No Comment

댓글 쓰기