호출 트리에는 너무 많은 정보가 포함되어 있는 경우가 많습니다. 표시되는 세부 정보를 줄이고 싶을 때 몇 가지 방법을 사용할 수 있습니다. 즉, 표시되는 데이터를 특정 서브트리로 제한하거나, 원하지 않는 모든 데이터를 제거하거나, 메서드 호출 표시에 더 거친 필터를 사용할 수 있습니다. 이러한 모든 전략은 JProfiler에서 지원됩니다.
호출 트리 루트 설정
순차적으로 실행되는 여러 작업으로 구성된 유스케이스를 프로파일링하는 경우, 각 서브트리를 개별적으로 분석할 수 있습니다. 이러한 하위 작업의 진입점을 찾고 나면, 주변의 호출 트리는 주의를 산만하게 할 뿐이며 서브트리의 소요 시간 백분율은 전체 호출 트리의 루트를 기준으로 표시되어 불편합니다.
특정 서브트리에 집중할 수 있도록 JProfiler는 호출 트리 및 할당 호출 트리 뷰에서 Set As Root 컨텍스트 액션을 제공합니다.
호출 트리 루트를 설정하면 선택한 루트에 대한 정보가 뷰 상단에 표시됩니다. 스크롤 가능한 단일 레이블에 루트로 이어지는 마지막 몇 개의 스택 요소가 표시되며, Show more 버튼을 클릭하면 호출 트리 루트의 전체 스택이 포함된 세부 정보 대화상자를 표시할 수 있습니다.
루트 설정 액션을 재귀적으로 사용하면 호출 스택 접두사가 단순히 연결됩니다. 이전 호출 트리로 돌아가려면 호출 트리 히스토리의 Back 버튼을 사용하여 루트 변경을 한 번에 하나씩 취소하거나, 컨텍스트 메뉴의 Reset Root And Show All 액션을 사용하여 한 번에 원래 트리로 돌아갈 수 있습니다.
호출 트리 루트를 변경할 때 가장 중요한 점은 핫스팟 뷰에 전체 트리가 아닌 선택한 루트에 대해서만 계산된 데이터가 표시된다는 것입니다. 핫스팟 뷰 상단에는 호출 트리 뷰와 마찬가지로 현재 호출 트리 루트가 표시되어 표시된 데이터의 컨텍스트를 상기시켜 줍니다.
호출 트리의 일부 제거
특정 메서드가 존재하지 않을 때 호출 트리가 어떻게 보일지 확인하는 것이 유용할 때가 있습니다. 예를 들어, 개발 환경처럼 빠르게 반복 작업을 수행할 수 없는 프로덕션 시스템의 스냅샷으로 작업하고 있어서 여러 성능 문제를 한 번에 해결해야 하는 경우가 이에 해당할 수 있습니다. 주요 성능 문제를 해결한 후 두 번째 문제를 분석하려고 할 때, 첫 번째 문제가 트리에서 제거되어야만 두 번째 문제를 명확하게 볼 수 있습니다.
호출 트리의 노드는 해당 노드를 선택하고 Delete 키를 누르거나 컨텍스트 메뉴에서 Remove Selected Subtree를 선택하여 하위
서브트리와 함께 제거할 수 있습니다. 상위 노드의 시간은 숨겨진 노드가 존재하지 않는 것처럼 적절하게 보정됩니다.
세 가지 제거 모드가 있습니다. Remove all invocations 모드를 사용하면 JProfiler는 전체 호출 트리에서 선택한 메서드의 모든 호출을 검색하여 전체 서브트리와 함께
제거합니다. Remove subtree only 옵션은 선택한 서브트리만 제거합니다. 마지막으로 Set self-time to zero는 선택한 노드를 호출 트리에
유지하지만 자체 시간을 0으로 설정합니다. 이는 프로파일되지 않은 클래스의 시간이 많이 포함될 수 있는 Thread.run과 같은 컨테이너 노드에 유용합니다.
Set As Root 액션과 마찬가지로, 제거된 노드는 핫스팟 뷰에 영향을 줍니다. 이런 방식으로 해당 메서드들이 중요하지 않은 수준으로 최적화되었을 때 핫스팟이 어떻게 보일지 확인할 수 있습니다.
노드를 제거하면 호출 트리와 핫스팟 뷰의 헤더 영역 모두에 제거된 노드 수와 Restore Removed Subtrees 버튼이 있는 라인이 표시됩니다. 해당 버튼을 클릭하면 다시 표시할 제거된 요소를 선택할 수 있는 대화상자가 나타납니다.
호출 트리 뷰 필터
호출 트리에서 핫스팟 뷰의 표시 데이터에 영향을 미치는 세 번째 기능은 뷰 필터입니다. 호출 트리 필터를 변경하면 계산된 핫스팟에 큰 영향을 미칩니다. 호출 트리 뷰와의 이러한 상호 의존성을 강조하기 위해, 핫스팟 뷰에서는 뷰 위의 라인에 호출 트리 뷰 필터와 함께 추가 필터를 제거하는 버튼을 표시합니다.
호출 트리 루트 설정, 호출 트리의 일부 제거 및 뷰 필터는 함께 사용할 수 있지만, 뷰 필터는 마지막에 설정해야 한다는 제한 사항이 있습니다. 호출 트리에서 뷰 필터가 구성되는 즉시 Set As Root 및 Remove Selected Subtree 액션은 더 이상 작동하지 않습니다.
호출 그래프와의 상호 작용
호출 트리 또는 핫스팟 뷰에서 Show Graph 액션을 호출하면 동일한 호출 트리 루트로 제한되고, 제거된 메서드는 포함되지 않으며, 구성된 호출 트리 뷰 필터를 사용하는 그래프가 표시됩니다. 그래프 상단에는 이러한 변경 사항에 대한 정보가 호출 트리와 유사한 형태로 표시됩니다.
그래프 뷰 자체에서 새 그래프를 생성할 때 마법사의 체크박스를 통해 이러한 호출 트리 조정 기능 중 어떤 것을 호출 그래프 계산에 고려할지 선택할 수 있습니다. 각 체크박스는 해당 기능이 현재 호출 트리 뷰에서 사용 중인 경우에만 표시됩니다.



















