JProfiler 도움말

복잡도 분석

복잡도 분석 뷰를 사용하면 메서드 매개변수에 따른 선택된 메서드의 알고리즘 복잡도를 조사할 수 있습니다.

빅오 표기법(big O notation)에 대한 내용을 다시 확인하려면, 알고리즘 복잡도 소개와 일반적인 알고리즘의 복잡도 비교 가이드를 읽어보는 것을 권장합니다.

먼저 monitor할 하나 이상의 메서드를 선택해야 합니다.

그런 다음 각 메서드에 대해 long 타입의 반환값이 현재 메서드 호출의 복잡도로 사용되는 스크립트를 입력할 수 있습니다. 예를 들어, java.util.Collection 타입의 메서드 매개변수 중 하나의 이름이 inputs인 경우, 스크립트는 inputs.size()가 될 수 있습니다.

복잡도 녹화는 CPU 녹화와 독립적입니다. 복잡도 분석 뷰에서 직접 또는 녹화 프로파일이나 트리거 동작을 사용하여 복잡도 녹화를 시작하고 중지할 수 있습니다. 녹화가 중지되면 x축에 복잡도, y축에 평균 실행 시간을 플롯한 결과 그래프가 표시됩니다. 메모리 요구량을 줄이기 위해 JProfiler는 다양한 복잡도와 실행 시간을 공통 버킷으로 결합할 수 있습니다. 상단의 드롭다운을 통해 구성된 서로 다른 메서드 간에 전환할 수 있습니다.

이 그래프는 버블 차트이며, 각 데이터 포인트의 크기는 측정 횟수에 비례합니다. 모든 측정값이 서로 다르면 일반적인 산점도(scatter chart)가 표시됩니다. 반대로 모든 메서드 호출이 동일한 복잡도와 실행 시간을 갖는 극단적인 경우에는 하나의 큰 원만 표시됩니다.

데이터 포인트가 3개 이상인 경우 일반적인 복잡도에 대한 곡선 피팅(curve fit)이 표시됩니다. JProfiler는 몇 가지 일반적인 복잡도에서 곡선 피팅을 시도하고 처음에 가장 적합한 모델을 보여줍니다. 곡선 피팅 드롭다운을 사용하면 다른 곡선 피팅 모델도 확인할 수 있습니다. 곡선 피팅 설명에 포함된 R2 값은 피팅이 얼마나 적합한지를 나타냅니다. 드롭다운의 모델은 R2 값을 기준으로 내림차순 정렬되므로, 가장 적합한 모델이 항상 첫 번째 항목으로 표시됩니다.

R2은 단순한 표기법일 뿐 실제로 어떤 값의 제곱이 아니므로 음수가 될 수 있습니다. 음수 값은 상수 선 피팅보다 더 나쁜 피팅임을 나타냅니다. 상수 선 피팅의 R2 값은 항상 0이고 완벽한 피팅의 값은 1입니다.

내보내기 대화상자에서 "Properties" 옵션을 선택하여 현재 표시된 피팅의 매개변수를 내보낼 수 있습니다. 품질 보증(QA) 환경에서의 자동화된 분석을 위해 명령줄 내보내기에서도 properties 형식을 지원합니다.