다음을 통해 공유


디버깅 및 프로파일링을 위한 런타임 구성 옵션

이 문서에서는 .NET 디버깅 및 프로파일링을 구성하는 데 사용할 수 있는 설정을 자세히 설명합니다.

참고 항목

.NET 6은 .NET 런타임 동작을 구성하는 환경 변수에 대해 COMPlus_ 대신 접두사 DOTNET_을 표준화합니다. 그러나 COMPlus_ 접두사도 계속 작동합니다. 이전 버전의 .NET 런타임을 사용하는 경우에도 환경 변수에 COMPlus_ 접두사를 사용해야 합니다.

진단 사용

  • 디버거, 프로파일러 및 EventPipe 진단이 사용 또는 사용하지 않도록 설정되는지 여부를 구성합니다.
  • 이 설정을 생략하면 진단이 사용됩니다. 이는 값을 1으로 설정하는 것과 같습니다.
설정 이름
runtimeconfig.json 해당 없음 해당 없음
환경 변수 COMPlus_EnableDiagnostics 또는 DOTNET_EnableDiagnostics 1 - 사용
0 - 사용 안 함

프로파일링 사용

  • 현재 실행 중인 프로세스에서 프로파일링이 사용하도록 설정되는지 여부를 구성합니다.
  • 이 설정을 생략하면 프로파일링을 사용할 수 없습니다. 이는 값을 0으로 설정하는 것과 같습니다.
설정 이름
runtimeconfig.json 해당 없음 해당 없음
환경 변수 CORECLR_ENABLE_PROFILING 0 - 사용 안 함
1 - 사용

프로파일러 GUID

  • 현재 실행 중인 프로세스에 로드할 프로파일러의 GUID를 지정합니다.
설정 이름
runtimeconfig.json 해당 없음 해당 없음
환경 변수 CORECLR_PROFILER string-guid

프로파일러 위치

  • 현재 실행 중인 프로세스(또는 32비트 또는 64비트 프로세스)에 로드할 프로파일러 DLL의 경로를 지정합니다.
  • 변수가 둘 이상 설정된 경우, 비트 수 관련 변수가 우선적으로 적용됩니다. 이들 변수는 프로파일러의 어느 비트 수를 로드할지 지정합니다.
  • 자세한 내용은 Finding the profiler library(프로파일러 라이브러리 찾기)를 참조하세요.
설정 이름
환경 변수 CORECLR_PROFILER_PATH string-path
환경 변수 CORECLR_PROFILER_PATH_32 string-path
환경 변수 CORECLR_PROFILER_PATH_64 string-path

perf 맵 및 jit 덤프 내보내기

  • perf 맵 또는 jit 덤프의 선택적 사용을 사용하거나 사용하지 않도록 설정합니다. 이러한 파일을 사용하면 Linux perf 도구와 같은 타사 도구가 동적으로 생성된 코드 및 미리 컴파일된 R2R(ReadyToRun) 모듈에 대한 호출 사이트를 식별할 수 있습니다.
  • 이 설정을 생략하면 perf 맵 및 jit 덤프 파일 작성이 모두 비활성화됩니다. 이는 값을 0으로 설정하는 것과 같습니다.
  • perf 맵을 사용하지 않도록 설정하면 관리되는 모든 호출 사이트를 제대로 확인할 수 없습니다.
  • Linux 커널 버전에 따라 두 형식 모두 perf 도구가 지원합니다.
  • 성능 perf 또는 jit 덤프를 사용하도록 설정하면 10~20% 오버헤드를 발생시킵니다. 성능 영향을 최소화하려면 perf 맵 또는 jit 덤프를 선택적으로 사용하도록 설정하는 것이 좋지만 둘 다 사용하도록 설정하는 것이 좋습니다.

다음 표에서는 perf 맵과 jit 맵을 비교합니다.

서식 설명 다음에서 지원됨
Perf 맵 동적으로 생성된 코드에 대한 기호 정보가 포함된 /tmp/perf-<pid>.map을(를) 내보냅니다.
R2R(ReadyToRun) 모듈 기호 정보를 포함하고 PerfCollect가 사용하는 /tmp/perfinfo-<pid>.map을(를) 내보냅니다.
Perf 맵은 모든 Linux 커널 버전에서 지원됩니다.
Jit 덤프 jit 덤프 형식은 perf 맵을 대체하고 보다 자세한 기호 정보를 포함합니다. 사용하도록 설정하면 jit 덤프가 /tmp/jit-<pid>.dump 파일에 출력됩니다. Linux 커널 버전 5.4 이상.
설정 이름
runtimeconfig.json 해당 없음 해당 없음
환경 변수 COMPlus_PerfMapEnabled 또는 DOTNET_PerfMapEnabled 0 - 사용 안 함
1 - perf 맵 및 jit 덤프 모두 사용
2 - jit 덤프 사용
3 - perf 맵 사용

Perf 로그 마커

  • Perf 로그에서 마커로 사용되거나 무시될 지정된 신호를 사용하거나 사용하지 않도록 설정합니다.
  • 이 설정을 생략하면 지정된 신호는 무시되지 않습니다. 이는 값을 0으로 설정하는 것과 같습니다.
설정 이름
runtimeconfig.json 해당 없음 해당 없음
환경 변수 COMPlus_PerfMapIgnoreSignal 또는 DOTNET_PerfMapIgnoreSignal 0 - 사용 안 함
1 - 사용

참고 항목

DOTNET_PerfMapEnabled를 생략하거나 0(즉, 사용 안 함)으로 설정하면 이 설정은 무시됩니다.