프로필 비교
Cloud Profiler를 사용하면 특정 프로젝트 내 동일한 서비스에서 가져온 동일한 유형의 두 프로필을 시각적으로 비교할 수 있습니다. 다음과 같은 기준별로 프로필을 비교할 수 있습니다.
- 종료 시간: 서비스가 특정 시간에 더 빨리 실행되나요? 시간 경과에 따라 점진적으로 개선되거나 감소한 적이 있나요?
- 영역: 서비스가 일부 영역에서 다른 영역보다 더 빨리 실행되나요?
- 서비스 버전: 최신 버전이 이전 버전과 현저하게 다르나요? 어떻게 할 수 있을까요?
- 가중치: 사용이 가장 많은 기간 중에 캡처된 프로필이 평균 프로필과 어떻게 다른가요?
비교 설정
비교를 설정할 때 원래 프로필과 비교 프로필에 대한 매개변수를 지정합니다. 이 두 프로필은 비교 대상 필드에서 정의된 매개변수를 제외한 모든 구성 매개변수를 공유합니다.
비교를 구성하려면 다음 단계를 따르세요.
비교 대상 메뉴에서 옵션을 선택하여 비교 유형을 설정합니다.
이러한 옵션 중 하나를 선택하면 새 구성 필드가 나타납니다. 필드 이름은 비교로 시작되고 비교 유형으로 끝납니다. 예를 들어 버전을 선택하면 비교 대상 필드 옆에 비교 대상 버전 필드가 표시됩니다.
비교 대상 메뉴에서 옵션을 선택하여 비교 프로필을 지정합니다.
예를 들어 스크린샷은 docdemo-service
의 두 버전을 비교하는 설정을 보여줍니다.
다음 필드의 설정은 원래 프로필과 비교 대상 프로필에 적용됩니다.
- 시간 범위:
7 days
- 종료 시간:
10/24/19, 8:35 AM
- 서비스:
docdemo-service
- 프로필 유형:
CPU time
- 영역:
All zones
- 가중치:
All
원래 프로필의 버전은 1.75.0
입니다. 비교 대상 프로필의 버전은 1.25.0
입니다.
비교 그래프 이해
비교 결과 그래프는 다음 측면에서 표준 그래프와 다릅니다.
- 색상의 의미
- 함수 블록 크기의 의미
- 도움말에 표시된 측정항목 정보
- 포커스 목록의 내용
색상의 의미
표준 플레임 그래프에서 그래프의 색상 모드를 지정할 수 있습니다. 자세한 내용은 색상 모드를 참조하세요.
비교 Flame 그래프에서 색상은 함수의 총 측정항목 소비가 원래 프로필과 비교 프로필 간에 얼마나 다른지를 나타냅니다.
- 회색: 거의 또는 전혀 차이가 없습니다.
- 빨간색: 차이가 양수입니다.
- 파란색: 차이가 음수입니다.
비교되는 두 프로필 간의 소비 값 차이가 클수록 색상의 채도가 높아집니다.
예를 들어 앞의 그림에서 foo1
호출 스택은 파란색이며, 이는 원래 프로필이 비교 대상 프로필보다 CPU를 적게 소비했음을 나타냅니다.
foo1
프레임은 하위 프레임 bar
보다 밝은 파란색인데, 이는 bar
함수보다 foo1
함수의 측정항목 소비에서 더 큰 차이가 있음을 나타냅니다.
마지막으로 foo2
호출 스택은 빨간색입니다. 이는 원래 프로필이 비교 대상 프로필보다 CPU를 많이 소비했음을 나타냅니다.
블록 크기 의미
표준 플레임 그래프에서 함수 블록의 크기는 분석 대상 측정항목의 상대적 소비량을 보여줍니다.
비교 플레임 그래프에서 함수 블록의 크기는 분석 대상 측정항목의 상대적 평균 소비량을 보여줍니다. 두 프로필의 값을 평균하면 한 프로필에만 존재하는 블록도 비교 그래프에 비교 전 크기의 절반 크기로 표시됩니다.
표시된 측정항목 값
표준 Flame 그래프에서 도움말에 표시된 측정항목에는 total과 self라는 두 개 절이 표시됩니다. 두 절에서 절댓값이 비율과 함께 표시됩니다.
total: 1.01 s, 28.8%; self: 1.01 s, 28.8%
프로필 두 개가 비교되고 있으므로 비교 Flame 그래프의 도움말에 두 프로필의 측정항목 값이 표시됩니다.
그림과 같이 total 및 self 절의 형식은 다음과 같습니다.
[ABS_ORIGINAL] vs. [ABS_COMPARED] ([ABS_DIFF]), [REL_ORIGINAL] vs. [REL_COMPARED] ([REL_DIFF])
이 표현식에서 ABS_
는 절댓값을 의미하고 REL_
은 상대 비율을 의미합니다. 따라서 [ABS_ORIGINAL]
은 원래 프로필의 절댓값이고 [ABS_COMPARED]
는 비교 대상 프로필의 절댓값입니다. [ABS_ORIGINAL]
- [ABS_COMPARED]
로 정의된 [ABS_DIFF]
필드는 두 프로필 간의 절댓값 차이입니다. 절댓값의 차이가 0이면 변동 없음이 표시됩니다.
비율은 각 프로필에 대해 루트의 원시 값 대비 함수의 원시 값의 비율로 계산됩니다. 예를 들어 원래 프로필에서 foo1
은 4.67초가 걸렸고, root
는 10.03초가 걸렸습니다. 따라서 [REL_ORIGINAL]
은 약 46.0%입니다. 비교 대상 프로필에 대해서도 유사한 계산이 수행됩니다. 마지막으로 이러한 비율 차이로 정의된 [REL_DIFF]
필드는 두 프로필의 상대오차입니다.
이 차이가 0이면 변동 없음이 표시됩니다.
앞의 예시에서 total 절은 원래 프로필의 foo1
함수가 4.67초 내에 실행됨을 보여줍니다. 절대오차가 -2.24초인 경우 이는 foo1
이 비교 대상 프로필에 비해 원래 프로필에서 약 2.41초 더 빠르게 실행됨을 의미합니다.
total: 4.67 s vs. 6.91 s (-2.24 s), 46.6% vs 69% (-22.4%)
비교 포커스 이동
표준 Flame 그래프에서 포커스 목록의 각 행에는 함수 이름, self 및 total 측정항목 소비 값, 해당 함수에 대한 호출 스택 수가 포함됩니다.
비교 Flame 그래프에서 포커스 목록의 각 행에는 함수 이름, self 및 total 측정항목 소비 값, 원래 프로필 프로파일러의 함수에 대한 호출 스택 수가 포함됩니다. 비교 Flame 그래프에서 포커스 목록에는 오차 열 2개, 상대오차 버튼, 절대오차 버튼도 포함됩니다. 상대오차와 절대오차에 대한 자세한 내용은 표시된 측정항목 값을 참조하세요.
기본적으로 비교 Flame 그래프의 색상은 원래 프로필과 비교 대상 프로필 간의 절대오차에 따라 결정됩니다. 이와 달리 포커스 목록에는 기본적으로 두 비교 대상 프로필 간의 상대오차가 표시됩니다.
이 예시의 표는 foo1
함수가 원래 프로필에서 실행되는 데 약 4.67초가 소요됨을 보여줍니다. 4.67초라는 시간은 런타임의 약 46.6%에 해당합니다. 상대오차를 표시하는 오차 열에는 -22.4%
값이 포함되어 있습니다.
측정항목 값 간의 절대오차를 보려면 절대오차를 클릭합니다.
표준 Flame 그래프 또는 비교 Flame 그래프가 있으면 테이블 헤더 요소를 선택하여 테이블 행을 오름차순 arrow_upward 또는 내림차순 arrow_downward으로 정렬할 수 있습니다.
비교 모드 해제
비교 모드를 해제하려면 비교 대상 필드를 없음으로 설정합니다.