Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описаны параметры, которые можно использовать для настройки отладки и профилирования .NET.
Замечание
Начиная с .NET 11 переменные среды профилировщика поддерживают как префиксы, так DOTNET и CORECLR префиксы. Префикс DOTNET является новым стандартом; CORECLR поддерживается для обратной совместимости и может быть удален в будущем.
Включение диагностики
- Определяет, включена ли или отключена диагностика отладчика, профилировщика и СобытияPipe.
- Если этот параметр не указан, диагностика включена. Это эквивалентно присвоению значения
1.
| Название настройки | Ценности | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Переменная среды | DOTNET_EnableDiagnostics |
1 — включено0 — отключено |
Включение профилирования
- Указывает, включена ли профилирование для текущего процесса.
- Если этот параметр не указан, профилирование отключено. Это эквивалентно присвоению значения
0. - Чтобы загрузить профилировщик, помимо включения профилирования, необходимо также настроить идентификатор GUID профилировщика и расположение профилировщика с помощью этих параметров.
| Название настройки | Ценности | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Переменная среды | DOTNET_ENABLE_PROFILING |
0 — отключено1 — включено |
GUID профилировщика
- Указывает GUID профилировщика для загрузки в текущий выполняющийся процесс.
| Название настройки | Ценности | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Переменная среды |
CORECLR_PROFILER или DOTNET_PROFILER |
string-guid |
Расположение профилировщика
После включения профилирования профилировщик можно загрузить двумя способами: с переменными среды (кроссплатформенной) или через реестр (только Для Windows). Переменные среды пути профилировщика имеют приоритет над любым путьом библиотеки COM в реестре, если они указаны.
Переменная среды (перекрестная плата)
- Указывает путь к библиотеке DLL профилировщика для загрузки в текущий выполняющийся процесс (или 32-разрядный или 64-разрядный процесс).
- Если задано несколько переменных, переменные, зависящие от битов, имеют приоритет. Они указывают, какая битовая нагрузка профилировщика.
| Название настройки | Ценности | |
|---|---|---|
| Переменная среды |
CORECLR_PROFILER_PATH или DOTNET_PROFILER_PATH |
строковый путь |
| Переменная среды |
CORECLR_PROFILER_PATH_32 или DOTNET_PROFILER_PATH_32 |
строковый путь |
| Переменная среды |
CORECLR_PROFILER_PATH_64 или DOTNET_PROFILER_PATH_64 |
строковый путь |
| Переменная среды |
CORECLR_PROFILER_PATH_ARM32 или DOTNET_PROFILER_PATH_ARM32 |
строковый путь |
| Переменная среды |
CORECLR_PROFILER_PATH_ARM64 или DOTNET_PROFILER_PATH_ARM64 |
строковый путь |
Через реестр (только Для Windows)
DOTNET_PROFILER_PATH* Если переменные среды не заданы во время работы в Windows, coreclr ищет CLSID из DOTNET_PROFILER реестра, чтобы найти полный путь к БИБЛИОТЕКе DLL профилировщика. Как и в любой библиотеке DLL COM-сервера, CLSID профилировщика просматривается в HKEY_CLASSES_ROOT, что объединяет классы из HKLM и HKCU.
Экспорт карт perf и дампов jit
- Включает или отключает карты perf или дампы jit. Эти файлы позволяют сторонним средствам, таким как средство Linux
perf, предоставлять пользовательские имена для динамически созданного кода и предварительно скомпилированных модулей ReadyToRun (R2R). - Если этот параметр не указан, запись файлов карты perf и jit дампа отключена. Это эквивалентно присвоению значения
0. - Если карты perf отключены, не все управляемые вызывающие сайты будут правильно разрешены.
- В зависимости от версии ядра Linux оба формата поддерживаются
perfсредством. - Включение карт perf или jit-дампов может вызвать до 20% накладных расходов, хотя часто это гораздо меньше. Чтобы свести к минимуму влияние на производительность, рекомендуется выборочно включить карты perf или дампы jit, но не оба. Влияние происходит только в том случае, если приложение является кодом JITing. Часто возникает при запуске, но это может произойти позже, если приложение выполняет новый путь кода в первый раз.
В следующей таблице сравниваются карты 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 или более поздней версии. |
| Название настройки | Ценности | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Переменная среды | DOTNET_PerfMapEnabled |
0 — отключено1 — карты perf и jit-дампы включены2 — включенные дампы jit3 — карты perf включено |
Маркеры журнала Perf
- Включает или отключает указанный сигнал, который будет приниматься и игнорироваться в виде маркера в журналах perf.
- Если этот параметр не указан, указанный сигнал не игнорируется. Это эквивалентно присвоению значения
0.
| Название настройки | Ценности | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Переменная среды | DOTNET_PerfMapIgnoreSignal |
0 — отключено1 — включено |
Замечание
Этот параметр игнорируется, если DOTNET_PerfMapEnabled опущен или задано 0 значение (то есть отключено).