이 절에서는 프로필러 그래픽 사용자 인터페이스의 기능과 그 기능을 사용하는 방법에 대해 설명합니다. 이 정보는 다음과 같이 구성됩니다.
프로필러 옵션 대화 상자는 다음 탭으로 구성되어 있습니다.
이 탭의 옵션을 사용하여 프로필링할 객체 및 프로필에 표시할 요소를 나타냅니다.
프로필러 옵션을 지정한 후 확인을 눌러 프로필러를 시작합니다. 프로젝트 구성에 따라 프로필러는 다음 두 가지 중 하나를 수행합니다.
일반 Identity Manager 프로젝트를 포함된 Identity Manager 인스턴스와 함께 사용하는 경우 프로필러는 전체 빌드를 수행하고, NetBean의 응용 프로그램 서버에 이를 배포한 다음 프로필러를 시작합니다.
일반 Identity Manager 프로젝트를 외부 Identity Manager 인스턴스 또는 원격 Identity Manager 프로젝트와 함께 사용하는 경우 프로필러는 프로젝트에 대해 구성된 Identity Manager 인스턴스에 첨부됩니다.
IdM -> Identity Manager 인스턴스 설정을 선택하여 프로젝트에 대한 Identity Manager 인스턴스 동작을 제어할 수 있습니다.
모드 탭은 다음 옵션을 제공합니다.
IDM 객체만: 양식, 규칙, 작업 흐름 및 XPRESS 객체를 프로필링하려면 선택합니다. 프로필에서 Java 객체를 제외시킵니다.
Java 및 IDM 객체: 양식, Java, 규칙, 작업 흐름 및 XPRESS 객체를 프로필링하려면 선택합니다.
Java 및 IDM 객체 옵션은 일반 Identity Manager 프로젝트를 외부 Identity Manager 인스턴스와 함께 사용하거나 원격 Identity Manager 프로젝트를 사용하는 경우 사용할 수 없습니다.
프로필러가 실행 중인 동안에는 모든 옵션을 변경할 수 없습니다. 옵션을 변경하려면 프로필러를 중지해야 합니다.
IDM 객체 필터 탭은 다음과 옵션을 제공합니다.
IDM 객체 세부 정보 표시
익명 소스 포함
익명 소스는 로그인 양식, MissingFields 양식과 같이 즉석에서 생성되는 양식 또는 양식의 일부이며 Identity Manager 저장소에 있는 영구 양식에는 해당되지 않습니다.
익명 소스를 스냅샷에 포함하려면 이 확인란을 선택합니다.
익명 소스를 스냅샷에서 제외하려면 이 확인란을 선택 취소합니다.
Java 필터 탭을 선택하여 다음을 수행할 수 있습니다.
Java 필터 포함 또는 제외
새 필터 만들기
기존 필터 삭제
기본 필터 복원
Java 필터는 메소드 패턴으로 제공되며, 정규 메소드 이름에 따라 포함 또는 제외되는 패턴으로 표시됩니다. 여기서 정규 메소드 이름은 다음과 같습니다.
fully-qualified-class-name.method-name(parameter-type-1, parameter-type-2, ...)
구성자의 경우 method-name은 <init>입니다.
다음은 몇 가지 예입니다.
모든 구성자를 제외하려면 제외 확인란을 활성화하고 다음 필터를 추가합니다.
*.<init>(*)
단일 org.w3c.dom.Element 매개 변수를 사용하여 모든 구성자를 제외하려면 제외 확인란을 활성화하고 다음 필터를 추가합니다.
*.<init>(org.w3c.dom.Element)
모든 Identity Manager 클래스를 제외하려면 제외 확인란을 활성화하고 다음 필터를 추가합니다.
"com.waveset.*" "com.sun.idm.*"
사용자 정의 코드만 지정하려면 제외 확인란을 비활성화하고 초기 * include 필터를 제거한 다음 필터를 추가합니다.
"com.yourcompany.*"
필터가 사용자 정의 클래스와 Identity Manager 클래스에만 적용되기 때문에 현재 마지막 두 예제는 동일합니다.
필요한 경우 build.xml의 다음 행을 적절하게 수정하여 다른 jar을 지정할 수 있습니다. 예를 들면 다음과 같습니다.
<instrument todir="${lighthouse-dir-profiler}/WEB-INF" verbose="${instrumentor.verbose}" includeMethods="${profiler.includes}" excludeMethods="${profiler.excludes}"> <fileset dir="${lighthouse-dir}/WEB-INF"> <include name="lib/idm*.jar"/> <include name="classes/**/*.class"/> </fileset> </instrument> |
기본적으로 구성에는 모든 사용자 정의 클래스와 대부분의 Identity Manager 클래스가 포함되어 있습니다. 많은 Identity Manager 클래스들이 활성화되면 프로필러를 차단하기 때문에 강제로 제외됩니다.
예를 들어, 작업 흐름, 양식 및 XPRESS 엔진의 클래스가 제외되거나, 프로필러가 Java 및 Identity Manager 객체를 프로필링할 때 알 수 없는 스냅샷을 생성합니다.
Java 필터는 IDM 객체 필터보다 훨씬 세밀한 필터링을 제공합니다. Java 계측에서는 실행 시간에 많은 오버헤드를 추가하므로, 프로필링 결과가 완전히 왜곡될 수 있습니다. Identity Manager 객체는 컴파일되는 것이 아니라 해석되는 것이므로 계측 오버헤드를 무시해도 좋습니다. 예를 들어, 작업 흐름 A를 제외하고 작업 흐름 B 등을 포함하는 근본적인 이유는 없습니다.
프로필러가 실행 중인 동안에는 Java 필터를 수정할 수 없습니다. Java 필터를 변경하려면 프로필러를 중지해야 합니다.
기타 탭은 다음 옵션을 제공합니다.
실행 시간이 0인 스냅샷 노드 제거:
실행 시간이 0인 경우에도 모든 실행된 항목에 대한 호출 정보를 스냅샷에 포함하려면 이 옵션을 비활성화합니다(기본값).
실행 시간이 없는 노드의 경우에도 호출 수가 있는 것이 유용할 수 있습니다.
가장 관련 있는 프로필링 데이터에 집중할 수 있도록 이러한 노드를 제거하려면 이 옵션을 활성화합니다. 또한 이 옵션을 활성화하면 프로필러 스냅샷 크기를 대폭 줄일 수 있습니다.
프로필러를 시작할 때 자동으로 브라우저 열기:
프로필러를 시작하면 브라우저가 자동으로 열려서 프로필링할 Identity Manager 인스턴스를 가리키게 하려면 이 옵션을 활성화합니다(기본값).
브라우저를 열지 않으려면 이 옵션을 비활성화합니다.
스냅샷에 Java 소스 포함:
프로필링 데이터에 참조되는 모든 Java 메소드에 대한 Java 소스를 스냅샷에 포함시키려면 이 옵션을 활성화합니다(기본값). 필드에 있는 스냅샷에 대해 항상 이 설정을 사용해야 합니다. 사용자 정의 Java는 상대적으로 작으며 지원하는 데 매우 중요합니다.
Identity Manager를 프로필링하고 전체 Identity Manager 소스를 사용할 수 있는 경우에만 이 옵션을 비활성화합니다.
이 경우에는 Identity Manager 소스를 포함하지 않을 수 있습니다. 소스를 포함하면 매우 큰 스냅샷이 생성될 수 있기 때문입니다. 자세한 내용은 프로필러에서 소스를 찾아 관리하는 방법을 참조하십시오.
IDM 프로필러 보기는 다음 영역으로 구성되어 있습니다.
현재 프로젝트 영역은 모든 현재 프로젝트를 나열하는 드롭다운 메뉴로 구성되어 있습니다. 이 메뉴를 사용하여 프로필링할 프로젝트를 선택합니다.
제어 영역에는 다음 표에 설명된 네 가지 아이콘이 있습니다.
아이콘 |
이름 |
목적 |
---|---|---|
|
Identity Manager 프로필러 시작 |
프로필러를 시작하고 프로필러 옵션 대화 상자를 엽니다. |
|
Identity Manager 프로필러 중지 |
프로필러를 중지합니다. |
|
수집된 결과 재설정 |
이 지점에서 수집한 모든 프로필 결과를 재설정합니다. |
|
프로필링 수정 |
설정을 변경하여 현재 프로필 결과를 수정할 수 있도록 프로필러 옵션 대화 상자를 다시 엽니다. |
상태 영역에서는 호스트에 연결되어 있는지 여부를 보고하고, 프로필러가 시작, 실행, 중지할 때 상태 정보를 제공합니다.
프로필링 결과 영역에는 다음 표에 설명된 두 가지 아이콘이 있습니다.
아이콘 |
이름 |
목적 |
---|---|---|
|
Identity Manager 프로필러 시작 |
프로필러를 시작하고 프로필러 옵션 대화 상자를 엽니다. |
|
수집된 결과 재설정 |
이 지점에서 수집한 모든 프로필 결과를 재설정합니다. |
저장된 스냅샷 영역에서는 모든 저장된 스냅샷 목록을 제공합니다.
스냅샷 저장 지침은 스냅샷 저장에 나와 있습니다.
또한 다음 버튼을 사용하여 이러한 스냅샷을 관리할 수 있습니다.
열기: 스냅샷 보기 창에서 저장된 스냅샷을 열려면 이 버튼을 누릅니다.
또한 저장된 스냅샷 목록에서 스냅샷을 두 번 눌러 해당 스냅샷을 열 수 있습니다.
삭제: 선택한 스냅샷을 삭제하려면, 저장된 스냅샷 목록에서 스냅샷을 선택한 다음 이 버튼을 누릅니다.
다른 이름으로 저장: 해당 스냅샷을 임의의 위치에 외부적으로 저장하려면 목록에서 스냅샷을 선택한 다음 이 버튼을 누릅니다.
로드: 임의의 위치에 있는 스냅샷을 스냅샷 보기 창에서 열려면 이 버튼을 누릅니다.
스냅샷을 열면 Identity Manager IDE 오른쪽 상단의 스냅샷 보기 창에 결과가 표시됩니다.
스냅샷에서는 다음 절에 설명된 여러 데이터 보기를 제공합니다.
호출 트리 보기는 시스템 전체의 호출 타이밍 및 호출 횟수를 보여 주는 트리 테이블로 구성됩니다.
이 트리 테이블에는 다음과 같은 세 개의 열이 포함되어 있습니다.
호출 트리 열: 모든 노드가 나열됩니다.
최상위 수준 노드는 다음 중 하나입니다.
시스템의 다양한 백그라운드 스레드에 대한 Thread.run() 메소드
예를 들어, Java 프로필링을 활성화하면 ReconTask.WorkerThread.run() 메소드가 표시됩니다.
요청 타이밍
예를 들어, idm/login.jsp URL을 보면 idm/login.jsp에 대한 최상위 항목이 표시됩니다. 이 항목에서 시간 열에 표시되는 데이터는 해당 요청에 대한 총 시간을 나타내고, 호출 열에 표시되는 데이터는 해당 페이지에 대한 총 호출 횟수를 나타냅니다. 해당 데이터를 자세히 조사하여 표시된 시간의 원인이 되는 호출을 확인할 수 있습니다.
또한 호출 트리에는 자체 시간 노드가 포함되어 있습니다. 자체 시간 값은 노드 자체에 소요된 시간을 나타냅니다. 자세한 내용은 통계 경고를 참조하십시오.
시간 열: 해당 노드가 상위 노드에서 호출되었을 때 각 노드에 소요된 시간이 나열됩니다. 백분율은 상위 시간을 기준으로 합니다.
호출 열: 각 노드가 상위 노드에서 호출된 횟수가 나열됩니다.
핫스폿 보기는 상위에 상관없이 총 호출 타이밍을 보여 주는 일반 노드 목록을 제공합니다.
이 보기에는 다음 열이 포함되어 있습니다.
자체 시간: 각 노드에 소요된 총 시간이 나열됩니다.
호출: 각 노드가 상위 노드에서 호출된 총 횟수가 나열됩니다.
시간: 각 노드와 해당 모든 하위에 소요된 총 시간이 나열됩니다.
역 추적 보기에서는 각 노드를 호출한 모든 호출 체인을 보여 주는 역 호출 스택을 제공합니다.
이러한 통계를 사용하여 "이 노드에서 이 특정 호출 체인을 제거하면 시간이 얼마나 절약됩니까?"라는 질문에 응답할 수 있습니다.
노드(루트 노드)를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 역 추적 표시를 선택하여 다른 스냅샷 보기에서 역 추적 보기에 액세스할 수 있습니다.
역 추적 보기에서는 시간 및 호출 데이터 값이 다른 의미를 갖습니다.
시간: 이 열의 값은 지정된 호출 체인에서 루트 노드를 호출한 경우 루트 노드에 소요된 시간을 나타냅니다.
호출: 이 열의 값은 지정된 호출 체인에서 루트 노드를 호출한 횟수를 나타냅니다.
호출 수신자 보기는 상위 체인에 상관없이 노드(루트 노드)의 총 호출 트리를 제공합니다.
이 통계는 마스터 호출 트리 전체의 여러 위치에서 호출되는 문제 영역이 있어 해당 노드에 대한 전체 프로필을 보려는 경우에 유용합니다.
노드(루트 노드)를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 호출 수신자 표시를 선택하여 다른 스냅샷 보기에서 호출 수신자 보기에 액세스할 수 있습니다.
호출 수신자 보기에 사용된 시간 및 호출 데이터 값은 호출 트리 보기에 사용된 값과 동일한 의미를 갖습니다.
호출 트리 보기 또는 핫스폿 보기에서 노드를 마우스 오른쪽 버튼으로 누르면 다음 표에 설명된 옵션이 있는 팝업 메뉴가 표시됩니다.
메뉴 옵션 |
설명 |
---|---|
소스로 이동 |
Java 메소드, 작업 흐름, 양식, 규칙 또는 XPRESS에 해당하는 노드에 대한 XML 소스를 보려면 이 옵션을 선택합니다. 이 보기에 대한 자세한 내용은 프로필러에서 소스를 찾아 관리하는 방법을 참조하십시오. |
역 추적 표시 |
역 추적 보기에 액세스하려면 이 옵션을 선택합니다. 이 보기에 대한 자세한 내용은 역 추적 보기를 참조하십시오. |
호출 수신자 표시 |
호출 수신자 보기에 액세스하려면 이 옵션을 선택합니다. 이 보기에 대한 자세한 내용은 호출 수신자 보기를 참조하십시오. |
핫스폿에서 찾기 |
핫스폿 보기에서 노드를 찾으려면 이 옵션을 선택합니다. 이 보기에 대한 자세한 내용은 핫스폿 보기를 참조하십시오. |
옵션 나열 > 정렬 -> |
이 옵션을 다음 중 하나로 선택합니다.
|
옵션 나열 -> 표시되는 열 변경 |
호출 트리 또는 핫스폿 목록에 표시되는 열을 변경하려면 이 옵션을 선택합니다. 표시되는 열 변경 대화 상자가 표시되면 다음 옵션 중 하나 이상을 선택할 수 있습니다.
|
검색 아이콘 (스냅샷 보기 창의 맨 위에 있음)을 사용하여 호출 트리 보기 또는 핫스폿 트리에서 이름별로 노드를 검색할 수 있습니다.
또는 호출 트리 보기 또는 핫스폿 보기에서 노드를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 호출 트리에서 찾기 또는 핫스폿에서 찾기를 선택하여 노드를 검색합니다.
프로필러는 스냅샷 저장을 위한 여러 옵션을 제공합니다. 옵션에 대한 설명은 다음 표를 참조하십시오.
아이콘 |
이름 |
목적 |
---|---|---|
|
프로젝트에 스냅샷 저장 아이콘(스냅샷 보기 창의 맨 위에 있음) |
프로젝트의 nbproject/private/idm-profiler 디렉토리에 스냅샷을 저장합니다. 프로젝트에 저장된 스냅샷은 프로필러 보기의 저장된 스냅샷 섹션에 나열됩니다. |
|
외부적으로 스냅샷 저장 아이콘(스냅샷 보기 창의 맨 위에 있음) |
외부의 임의의 위치에 스냅샷을 저장합니다. |
|
다른 이름으로 저장 버튼(저장된 스냅샷 영역에 있음) |
외부의 임의의 위치에 스냅샷을 저장합니다. |