복잡도 분석
복잡도 분석 뷰는 선택된 메소드의 알고리즘 복잡도를 메소드 매개변수에 따라 조사할 수 있게 합니다.
빅 오 표기법에 대한 세부 사항을 새로 고치려면, 알고리즘 복잡도에 대한 소개 및 일반 알고리즘의 복잡도 비교 가이드 를 읽어보는 것이 좋습니다.
먼저, 모니터링할 메소드를 하나 이상 선택해야 합니다.
각 메소드에 대해, 현재 메서드 호출의 복잡도로 사용되는
long
유형의 반환 값을 가진 스크립트를 입력할 수 있습니다. 예를 들어, java.util.Collection
유형의 메소드 매개변수 중 하나가
inputs
라는 이름이라면, 스크립트는 inputs.size()
일 수 있습니다.
복잡도 녹화는 CPU 녹화와 독립적입니다. 복잡도 분석 뷰에서 직접 복잡도 녹화를 시작하고 중지할 수 있으며, 녹화 프로파일 또는 트리거 액션을 사용할 수도 있습니다. 녹화가 중지된 후에는 결과가 x축의 복잡도와 y축의 실행 시간을 플로팅하는 그래프로 표시됩니다. 메모리 요구 사항을 줄이기 위해, JProfiler는 서로 다른 복잡도와 실행 시간을 공통 버킷으로 결합할 수 있습니다. 상단의 드롭다운을 사용하여 구성된 다른 메소드 간에 전환할 수 있습니다.
그래프는 버블 차트로, 각 데이터 포인트의 크기는 그 안에 있는 측정 수에 비례합니다. 모든 측정이 구별되면 일반적인 산포 차트를 볼 수 있습니다. 다른 극단적으로, 모든 메소드 호출이 동일한 복잡도와 실행 시간을 가지면 하나의 큰 원을 보게 됩니다.
데이터 포인트가 최소 3개 이상인 경우, 일반적인 복잡도로 곡선 피팅이 표시됩니다. JProfiler는 여러 일반적인 복잡도로부터 곡선 피팅을 시도하며 처음에는 최적의 피팅을 보여줍니다. 곡선 피팅을 위한 드롭다운을 사용하여 다른 곡선 피팅 모델도 표시할 수 있습니다. 곡선 피팅 설명에 포함된 R2 값은 피팅의 적합성을 보여줍니다. 드롭다운의 모델은 R2에 따라 내림차순으로 정렬되어 있으므로 최적의 모델이 항상 첫 번째 항목입니다.
R2는 단지 표기법일 뿐 실제로는 아무것도 제곱하지 않기 때문에 음수가 될 수 있습니다. 음수 값은 상수 선과의 피팅보다 나쁜 피팅을 나타냅니다. 상수 선 피팅은 항상 R2 값이 0이고 완벽한 피팅은 값이 1입니다.
현재 표시된 피팅의 매개변수를 내보내기 대화 상자에서 "속성" 옵션을 선택하여 내보낼 수 있습니다. 품질 보증 환경에서 자동 분석을 위해 명령줄 내보내기는 속성 형식을 지원합니다.