JProfiler 도움말Download

텔레메트리


프로파일링의 한 측면은 시간에 따른 스칼라 측정을 모니터링하는 것입니다. 예를 들어, 사용된 힙 크기입니다. JProfiler에서는 이러한 그래프를 텔레메트리라고 합니다. 텔레메트리를 관찰하면 프로파일된 소프트웨어에 대한 이해를 높이고, 다양한 측정치 간의 중요한 이벤트를 연관시킬 수 있으며, 예상치 못한 동작을 발견하면 JProfiler의 다른 뷰를 사용하여 더 깊은 분석을 수행하도록 유도할 수 있습니다.

표준 텔레메트리

JProfiler UI의 "텔레메트리" 섹션에서는 기본적으로 여러 텔레메트리가 기록됩니다. 대화형 세션에서는 항상 활성화되어 있습니다. 일부 텔레메트리는 특별한 유형의 데이터가 기록되어야 합니다. 이 경우, 텔레메트리에 녹화 작업이 표시됩니다.

동일한 시간 축에서 여러 텔레메트리를 비교하려면, 개요에서 여러 소규모 텔레메트리를 서로 위에 표시하며, 행 높이를 구성할 수 있습니다. 텔레메트리 제목을 클릭하면 전체 텔레메트리 뷰가 활성화됩니다. 개요에서 텔레메트리의 기본 순서는 적합하지 않을 수 있습니다. 예를 들어, 선택한 텔레메트리를 나란히 연관시키고 싶을 수 있습니다. 이 경우, 개요에서 드래그 앤 드롭으로 순서를 변경할 수 있습니다.

전체 뷰는 현재 값이 있는 범례를 표시하며, 개요에서 보이는 것보다 더 많은 옵션을 가질 수 있습니다. 예를 들어, "메모리" 텔레메트리는 단일 메모리 풀을 선택할 수 있습니다.

JProfiler는 JVM 및 중요한 프레임워크의 고급 시스템에서 이벤트를 기록하는 많은 프로브를 가지고 있습니다. 프로브는 해당 프로브 뷰에 표시되는 텔레메트리를 가지고 있습니다. 이러한 텔레메트리를 시스템 텔레메트리와 비교하려면, 선택한 프로브 텔레메트리를 최상위 텔레메트리 섹션에 추가할 수 있습니다. 툴바에서 텔레메트리 추가→프로브 텔레메트리 를 선택하고 하나 이상의 프로브 텔레메트리를 선택하십시오.

추가된 각 프로브 텔레메트리는 텔레메트리 섹션에 자체 뷰를 가지며, 개요에도 표시됩니다.

프로브 텔레메트리가 추가되면, 프로브 데이터가 기록된 경우에만 데이터가 표시됩니다. 그렇지 않으면, 텔레메트리 설명에 녹화를 시작하는 인라인 버튼이 포함됩니다.

프로브 텔레메트리의 컨텍스트 메뉴에는 녹화 작업과 해당 프로브 뷰를 표시하는 작업이 포함되어 있습니다.

프로브 뷰와 유사하게, 기록된 객체의 VM 텔레메트리는 메모리 기록에 따라 달라지며, 녹화 버튼과 유사한 컨텍스트 메뉴를 가지고 있습니다.

마지막으로, 다른 뷰에서 선택된 스칼라 값을 모니터링하는 "추적" 텔레메트리가 있습니다. 예를 들어, 클래스 트래커 뷰에서는 클래스를 선택하고 시간에 따른 인스턴스 수를 모니터링할 수 있습니다. 또한, 각 프로브에는 선택된 핫스팟이나 제어 객체를 모니터링하는 "트래커" 뷰가 있습니다.

북마크

JProfiler는 모든 텔레메트리에 표시되는 북마크 목록을 유지합니다. 대화형 세션에서는 북마크 추가 툴바 버튼을 클릭하거나, 컨텍스트 메뉴의 여기에 북마크 추가 기능을 사용하여 현재 시간에 북마크를 추가할 수 있습니다.

북마크는 수동으로 생성될 뿐만 아니라, 특정 녹화의 시작과 끝을 나타내기 위해 녹화 작업에 의해 자동으로 추가됩니다. 트리거 작업이나 컨트롤러 API를 사용하여 프로그래밍 방식으로 북마크를 추가할 수 있습니다.

북마크에는 색상, 선 스타일 및 툴팁에 표시되는 이름이 있습니다. 기존 북마크를 편집하고 이러한 속성을 변경할 수 있습니다.

텔레메트리에서 여러 북마크를 마우스 오른쪽 버튼으로 클릭하는 것이 불편하다면, 메뉴에서 프로파일링→북마크 편집 작업을 사용하여 북마크 목록을 얻을 수 있습니다. 여기에서 북마크를 HTML 또는 CSV로 내보낼 수도 있습니다.

사용자 정의 텔레메트리

사용자 정의 텔레메트리를 추가하는 방법은 두 가지가 있습니다: JProfiler UI에서 스크립트를 작성하여 숫자 값을 제공하거나, 숫자 MBean 속성을 선택하는 것입니다.

사용자 정의 텔레메트리를 추가하려면, "텔레메트리" 섹션에 표시되는 텔레메트리 구성 툴바 버튼을 클릭하십시오. 스크립트 텔레메트리에서는 현재 JProfiler 세션의 클래스패스에 구성된 모든 클래스에 액세스할 수 있습니다. 값이 직접적으로 사용 가능하지 않은 경우, 이 스크립트에서 호출할 수 있는 정적 메서드를 애플리케이션에 추가하십시오.

위의 예는 플랫폼 MBean에 대한 호출을 보여줍니다. MBean의 스칼라 값을 그래프로 그리는 것은 MBean 텔레메트리로 더 편리하게 수행됩니다. 여기서 MBean 브라우저를 사용하여 적절한 속성을 선택할 수 있습니다. 속성 값은 숫자여야 합니다.

여러 텔레메트리 라인을 단일 텔레메트리로 묶을 수 있습니다. 그래서 구성이 두 부분으로 나뉩니다: 텔레메트리 자체와 텔레메트리 라인입니다. 텔레메트리 라인에서는 데이터 소스와 라인 캡션을 편집하고, 텔레메트리에서는 단위, 스케일 및 스태킹을 구성할 수 있으며, 이는 포함된 모든 라인에 적용됩니다.

스택된 텔레메트리에서는 단일 텔레메트리 라인이 추가적이며, 영역 그래프를 표시할 수 있습니다. 스케일 팩터는 값을 지원되는 단위로 변환하는 데 유용합니다. 예를 들어, 데이터 소스가 kB를 보고하는 경우, JProfiler에는 일치하는 "kB" 단위가 없습니다. 스케일 팩터를 -3으로 설정하면 값이 바이트로 변환되고, 텔레메트리의 단위로 "바이트"를 선택하면 JProfiler는 텔레메트리에서 적절한 집계 단위를 자동으로 표시합니다.

사용자 정의 텔레메트리는 "텔레메트리" 섹션의 끝에 구성된 순서대로 추가됩니다. 이를 재정렬하려면, 개요에서 원하는 위치로 드래그하십시오.

오버헤드 고려사항

처음에는 텔레메트리가 시간에 따라 메모리를 선형적으로 소비할 것처럼 보일 수 있습니다. 그러나 JProfiler는 오래된 값을 통합하고 점진적으로 더 거친 그래인으로 만들어 텔레메트리당 소비되는 총 메모리 양을 제한합니다.

텔레메트리의 CPU 오버헤드는 값이 초당 한 번만 폴링된다는 사실로 인해 제한됩니다. 표준 텔레메트리의 경우, 이 데이터 수집에 대한 추가 오버헤드는 없습니다. 사용자 정의 텔레메트리의 경우, 오버헤드는 기본 스크립트 또는 MBean에 의해 결정됩니다.