현재 애플리케이션의 런타임 특성을 이전 버전과 비교하는 것은 성능 회귀를 방지하기 위한 일반적인 품질 보증 기법입니다. 또한, 단일 프로파일링 세션 내에서 두 가지 다른 use case를 비교하고 왜 하나가 다른 것보다 느린지 확인하고자 할 때 성능 문제를 해결하는 데에도 유용합니다. 두 경우 모두, 관심 있는 데이터를 녹화한 스냅샷을 저장하고, JProfiler의 스냅샷 비교 기능을 사용하여 세션→새 창에서 스냅샷 비교 메뉴를 통해 호출하거나 시작 센터의 스냅샷 열기 탭에서 여러 스냅샷 비교 버튼을 클릭하여 사용할 수 있습니다.
스냅샷 선택
비교는 별도의 최상위 창에서 생성 및 확인할 수 있습니다. 먼저, 스냅샷 선택기에서 여러 개의 스냅샷을 추가합니다. 그런 다음, 관심 있는 스냅샷을 선택하고 비교 툴바 버튼을 클릭하여 나열된 스냅샷 중 두 개 이상을 비교할 수 있습니다. 리스트에서 스냅샷 파일의 순서는 중요하며, 아래쪽에 있는 스냅샷일수록 더 나중에 녹화된 것으로 간주됩니다. 스냅샷을 수동으로 정렬하는 것 외에도, 이름이나 생성 시간으로 정렬할 수 있습니다.
JProfiler의 메인 창에 있는 뷰와 달리, 비교 뷰는 고정된 뷰 파라미터를 상단에 표시하며, 파라미터를 즉시 조정할 수 있는 드롭다운 리스트는 제공하지 않습니다. 모든 비교에서는 파라미터를 수집하기 위한 마법사가 표시되며, 동일한 파라미터로 여러 번 동일한 비교를 수행할 수 있습니다. 마법사는 이전 실행에서 사용한 파라미터를 기억하므로, 여러 스냅샷 집합을 비교할 때 설정을 반복할 필요가 없습니다. 언제든지 마침 버튼으로 마법사를 바로 종료하거나, 인덱스에서 단계를 클릭하여 다른 단계로 이동할 수 있습니다.
비교가 활성화되면, 분석된 스냅샷이 번호 접두사와 함께 표시됩니다. 두 개의 스냅샷을 비교하는 경우, 표시되는 차이는 스냅샷 2의 측정값에서 스냅샷 1의 측정값을 뺀 결과입니다.
CPU 비교의 경우, 동일한 스냅샷을 첫 번째 및 두 번째 스냅샷으로 사용하고, 마법사에서 서로 다른 스레드 또는 스레드 그룹을 선택할 수 있습니다.
테이블을 이용한 비교
가장 간단한 비교는 "객체" 메모리 비교입니다. 이 비교는 heap walker의 "모든 객체", "녹화된 객체" 또는 "클래스" 뷰의 데이터를 비교할 수 있습니다. 비교 테이블의 컬럼은 인스턴스 개수와 크기의 차이를 보여주지만, 인스턴스 개수 컬럼만 양방향 막대 차트를 표시합니다. 이때 증가분은 빨간색으로 오른쪽에, 감소분은 초록색으로 왼쪽에 표시됩니다.
뷰 설정 대화상자에서 이 막대 차트를 절대값 변화로 표시할지, 백분율로 표시할지 선택할 수 있습니다. 다른 값은 괄호 안에 표시됩니다. 이 설정은 컬럼의 정렬 방식에도 영향을 줍니다.
첫 번째 데이터 컬럼의 측정값을 기본 측정값(primary measure)이라고 하며, 뷰 설정에서 기본값인 인스턴스 개수에서 shallow size로 전환할 수 있습니다.
테이블의 컨텍스트 메뉴에서는 동일한 비교 파라미터와 선택한 클래스를 기준으로 다른 메모리 비교로 바로 이동할 수 있는 단축 메뉴를 제공합니다.
객체 비교와 마찬가지로, CPU 핫스팟, 프로브 핫스팟, 할당 핫스팟 비교도 유사한 테이블로 표시됩니다.
트리를 이용한 비교
CPU 호출 트리, 할당 호출 트리, 프로브 호출 트리 각각에 대해 선택한 스냅샷 간의 차이를 보여주는 또 다른 트리를 계산할 수 있습니다. 일반 호출 트리 뷰와 달리, 인라인 막대 다이어그램은 이제 변화량을 표시하며, 증가 시 빨간색, 감소 시 초록색으로 표시됩니다.
작업에 따라, 두 스냅샷 파일 모두에 존재하고 한 스냅샷에서 다른 스냅샷으로 변경된 호출 스택만 표시하면 더 쉽게 볼 수 있습니다. 이 동작은 뷰 설정 대화상자에서 변경할 수 있습니다.
CPU 및 프로브 호출 트리 비교에서는 전체 시간 대신 평균 시간을 비교하는 것이 더 유용할 수 있습니다. 이 옵션은 마법사의 "뷰 파라미터" 단계에서 선택할 수 있습니다.
텔레메트리 비교
텔레메트리 비교에서는 두 개 이상의 스냅샷을 동시에 비교할 수 있습니다. 스냅샷 선택기에서 아무 스냅샷도 선택하지 않으면, 마법사는 모든 스냅샷을 비교 대상으로 간주합니다. 텔레메트리 비교는 시간 축이 없으며, 선택된 스냅샷 번호가 순서형 x축으로 표시됩니다. 툴팁에는 스냅샷의 전체 이름이 포함되어 있습니다.
비교는 각 스냅샷에서 하나의 숫자 값을 추출합니다. 텔레메트리 데이터는 시간에 따라 기록되므로, 여러 가지 추출 방법이 있습니다. 마법사의 "비교 유형" 단계에서 스냅샷이 저장된 시점의 값 사용, 최대값 계산, 선택한 북마크에서의 값 찾기 중에서 선택할 수 있습니다.

























