이제 앱에서 코드 최적화를 설정하고 구성했으므로 받은 모든 인사이트에 액세스하고 확인합니다.
액세스 코드 최적화
다음 두 가지 주요 진입점을 통해 코드 최적화에 액세스할 수 있습니다.
코드 최적화 통합 개요 페이지(미리 보기)를 통해
코드 최적화 개요 페이지를 통해 코드 최적화 결과를 봅니다. 이 통합 개요에서는 여러 Application Insights 리소스에 대한 여러 구독의 결과에 액세스할 수 있습니다.
필터 필드를 검색하거나 다음 필터를 설정하여 통합된 결과를 필터링할 수 있습니다.
| 필터 | 설명 | 기본값 |
|---|---|---|
| 시간 범위 | 코드 최적화 결과를 보려는 시간 범위를 선택합니다. | 지난 24시간 |
| 역할 | 보고 서비스 컴퓨터나 워크로드에 할당된 역할 이름입니다. Application Insights 구성을 통해 업데이트할 수 있습니다. | 모든 역할 |
| 구독 | 해당 인사이트가 속한 구독입니다. 둘 이상을 선택할 수 있습니다. | 해당 없음(N/A) |
| Application Insights (애플리케이션 인사이트) | 애플리케이션이 연결된 Application Insights 리소스입니다. 둘 이상을 선택할 수 있습니다. | 해당 없음(N/A) |
| 인사이트 유형 | CPU, 메모리 또는 차단과 같은 문제의 유형입니다. | 모든 형식 |
그런 다음 다음을 포함하여 원하는 뷰에 따라 인사이트 결과의 열을 정렬할 수 있습니다.
- 성능 이슈
- 부모 메서드의 전체 이름
개별 Application Insights 리소스를 통해
해당 리소스의 왼쪽 메뉴에서 개별 Application Insights 리소스와 관련된 코드 최적화에 액세스할 수 있습니다. 성능> 클릭하고 위쪽 메뉴에서 코드 최적화 단추를 선택합니다.
필터 필드를 검색하거나 다음 필터를 설정하여 통합된 결과를 필터링할 수 있습니다.
| 필터 | 설명 | 기본값 |
|---|---|---|
| 시간 범위 | 코드 최적화 결과를 보려는 시간 범위를 선택합니다. | 지난 24시간 |
| 역할 | 보고 서비스 컴퓨터나 워크로드에 할당된 역할 이름입니다. Application Insights 구성을 통해 업데이트할 수 있습니다. | 모든 역할 |
| 인사이트 유형 | CPU, 메모리 또는 차단과 같은 문제의 유형입니다. | 모든 형식 |
그런 다음 다음을 포함하여 원하는 뷰에 따라 인사이트 결과의 열을 정렬할 수 있습니다.
- 성능 이슈
- 해당 문제가 포함된 프로필 수
- 부모 메서드의 전체 이름
예상 메모리 및 CPU 최대 사용률 해석
예상 CPU 및 메모리는 애플리케이션의 작업량에 따라 결정됩니다. 메모리 및 CPU 비율 외에도 코드 최적화에는 다음이 포함됩니다.
- 실제 할당 크기(바이트)
- 호출 내에서 할당된 형식 분석
메모리
메모리의 경우 이 숫자는 추적 내에서 이루어진 모든 할당의 백분율입니다. 예를 들어, 문제가 24%의 메모리를 차지한다면 해당 호출 내에서 모든 할당량의 24%를 소비한 것입니다.
CPU (중앙 처리 장치)
CPU의 경우 백분율은 컴퓨터의 CPU 수(4개 코어, 8개 코어 등) 및 추적 시간을 기준으로 합니다. 예를 들어, 추적 길이가 10초이고 CPU가 4개 있고 총 CPU 시간이 40초라고 가정해 보겠습니다. 인사이트에 코드 줄이 CPU의 5%를 사용하고 있다고 표시되면 40초의 5%, 즉 2초를 사용하는 것입니다.
차단
스레드가 I/O 작업, 잠금 또는 절전 모드와 같은 리소스를 기다리는 데 걸린 시간을 보여 줍니다. 차단 시간은 몇 초 안에 보고되고 모든 스레드와 코어에서 집계되므로 CPU 메트릭과 동일한 집계 규칙에 따라 합계가 캡처 기간을 초과할 수 있습니다.
이 메트릭을 사용하여 다음과 같은 대기 시간 병목 상태를 신속하게 식별합니다.
- 스레드 간 잠금 경합
- 동기 I/O 작업
- 비동기 작업에 대한 호출 차단
인사이트 보기
코드 최적화 결과를 정렬 및 필터링한 후 각 인사이트를 선택하여 창에서 다음 세부 정보를 볼 수 있습니다.
- 성능 버그 인사이트에 대한 자세한 설명입니다.
- 전체 호출 스택입니다.
- 성능 문제를 해결하는 방법에 대한 권장 사항.
- 문제의 추세 영향 및 임계값의 타임라인입니다.
인사이트
인사이트 탭은 다음을 제공합니다.
- 선택한 문제에 대한 간략한 설명입니다.
- 리소스 메모리 또는 CPU 사용량의 현재 상태입니다.
- 문제 해결을 위한 AI 생성 권장 사항입니다.
비고
인사이트가 표시되지 않으면 코드 최적화 서비스에서 코드에서 성능 병목 상태를 발견하지 못한 것일 수 있습니다. 계속 다시 확인하여 인사이트가 팝업되는지 확인합니다.
호출 스택
인사이트 세부 정보 창의 호출 스택 제목 아래에서 다음을 수행할 수 있습니다.
- 성능 문제와 관련된 전체 호출 스택을 보려면 확장을 선택합니다.
- 호출 스택을 복사하려면 복사를 선택합니다.
타임라인
세부 정보 창의 타임라인 아래에서 특정 성능 문제의 영향 및 임계값의 타임라인을 보여 주는 그래프를 볼 수도 있습니다. 결과는 설정한 필터에 따라 달라집니다. 예를 들어 지난 24시간 동안 표시된 메모리 "비효율적 String.SubString()" 성능 문제의 인사이트는 다음과 같습니다.