Параметры конфигурации времени выполнения для отладки и профилирования
В этой статье подробно описаны параметры, которые можно использовать для настройки отладки и профилирования .NET.
Примечание.
.NET 6 стандартизует префикс DOTNET_
вместо COMPlus_
для переменных среды, которые настраивают поведение .NET во время выполнения. Но префикс COMPlus_
будет и дальше работать. Если вы используете предыдущую версию среды выполнения .NET, следует и дальше использовать префикс COMPlus_
для переменных среды.
Включение диагностики
- Указывает, включены или нет отладчик, профилировщик и диагностика EventPipe.
- Если этот параметр не задан, диагностика будет включена. Это эквивалентно присвоению значения
1
.
Имя настройки | Values | |
---|---|---|
runtimeconfig.json | Неприменимо | Неприменимо |
Переменная среды | COMPlus_EnableDiagnostics или DOTNET_EnableDiagnostics |
1 — включено0 — отключено |
Включить профилирование
- Указывает, включено ли профилирование для текущего выполняющегося процесса.
- Если этот параметр не задан, профилирование будет отключено. Это эквивалентно присвоению значения
0
.
Имя настройки | Values | |
---|---|---|
runtimeconfig.json | Неприменимо | Неприменимо |
Переменная среды | CORECLR_ENABLE_PROFILING |
0 — отключено1 — включено |
Profiler GUID (GUID профилировщика)
- Указывает идентификатор GUID профилировщика, загружаемый в выполняющийся процесс.
Имя настройки | Values | |
---|---|---|
runtimeconfig.json | Неприменимо | Неприменимо |
Переменная среды | CORECLR_PROFILER |
string-guid |
Profiler location (Расположение профилировщика)
- Указывает путь к библиотеке DLL профилировщика, загружаемой в выполняющийся процесс (либо 32- или 64-разрядный процесс).
- Если задано более одной переменной, приоритет имеют учитывающие разрядность переменные. Они указывают, какой разрядности профилировщик следует загрузить.
- Дополнительные сведения см. в разделе Поиск библиотеки профилировщика.
Имя настройки | Values | |
---|---|---|
Переменная среды | CORECLR_PROFILER_PATH |
string-path |
Переменная среды | CORECLR_PROFILER_PATH_32 |
string-path |
Переменная среды | CORECLR_PROFILER_PATH_64 |
string-path |
Экспорт карт perf и дампов jit
- Включает или отключает выборочное включение карт perf или дампов jit. Эти файлы позволяют сторонним средствам, таким как средство Linux
perf
, определять сайты вызовов для динамически сформированного кода и предварительно компилированных модулей ReadyToRun (R2R). - Если этот параметр не указан, запись файлов карты perf и jit дампа отключена. Это эквивалентно присвоению значения
0
. - Если карты perf отключены, не все управляемые вызывающие сайты будут правильно разрешены.
- В зависимости от версии ядра Linux оба формата поддерживаются
perf
средством. - Включение карт perf или jit-дампов приводит к 10-20% затрат. Чтобы свести к минимуму влияние на производительность, рекомендуется выборочно включить карты perf или дампы jit, но не оба.
В следующей таблице сравниваются карты perf и карты jit.
Формат | Description | Поддерживается на |
---|---|---|
Карты Perf | Выдает /tmp/perf-<pid>.map символьные сведения для динамически созданного кода.Выдает сведения о символах /tmp/perfinfo-<pid>.map модуля ReadyToRun (R2R) и используется PerfCollect. |
Карты perf поддерживаются во всех версиях ядра Linux. |
Дампы Jit | Формат jit дампа заменяет карты perf и содержит более подробную символьную информацию. При включении jit-дампы выводятся в /tmp/jit-<pid>.dump файлы. |
Ядра Linux версии 5.4 или более поздней версии. |
Имя настройки | Values | |
---|---|---|
runtimeconfig.json | Неприменимо | Неприменимо |
Переменная среды | COMPlus_PerfMapEnabled или DOTNET_PerfMapEnabled |
0 — отключено1 — карты perf и jit-дампы включены2 — включенные дампы jit3 — карты perf включено |
Perf log markers (Маркеры журналов производительности)
- Включает или отключает указанный сигнал, который будет принят и проигнорирован в качестве маркера в журналах производительности.
- Если этот параметр не задан, указанный сигнал не будет проигнорирован. Это эквивалентно присвоению значения
0
.
Имя настройки | Values | |
---|---|---|
runtimeconfig.json | Неприменимо | Неприменимо |
Переменная среды | COMPlus_PerfMapIgnoreSignal или DOTNET_PerfMapIgnoreSignal |
0 — отключено1 — включено |
Примечание.
Этот параметр игнорируется, если параметр DOTNET_PerfMapEnabled не задан или имеет значение 0
(т. е. отключен).