デバッグとプロファイルのランタイム構成オプション
この記事では、.NET デバッグおよびプロファイルを構成するために使用できる設定について詳しく説明します。
注意
.NET 6 では、.NET の実行時の動作を構成する環境変数のプレフィックスが、COMPlus_
ではなく DOTNET_
に標準化されています。 ただし、プレフィックス COMPlus_
は引き続き機能します。 以前のバージョンの .NET ランタイムを使用している場合は、環境変数に COMPlus_
プレフィックスをまだ使用する必要があります。
診断を有効化する
- デバッガー、プロファイラー、EventPipe 診断を有効にするか、または無効にするかを構成します。
- この設定を省略すると、診断は有効になります。 これは、値を
1
に設定した場合と同じです。
設定の名前 | 値 | |
---|---|---|
runtimeconfig.json | N/A | N/A |
環境変数 | COMPlus_EnableDiagnostics または DOTNET_EnableDiagnostics |
1 - 有効0 - 無効 |
プロファイルを有効にする
- 現在実行中のプロセスに対してプロファイルを有効にするかどうかを構成します。
- この設定を省略すると、プロファイルは無効になります。 これは、値を
0
に設定した場合と同じです。
設定の名前 | 値 | |
---|---|---|
runtimeconfig.json | N/A | N/A |
環境変数 | CORECLR_ENABLE_PROFILING |
0 - 無効1 - 有効 |
プロファイラー GUID
- 現在実行中のプロセスに読み込むプロファイラーの GUID を指定します。
設定の名前 | 値 | |
---|---|---|
runtimeconfig.json | N/A | N/A |
環境変数 | CORECLR_PROFILER |
string-guid |
プロファイラーの場所
- 現在実行中のプロセス (32 ビット プロセスまたは 64 ビット プロセス) に読み込むプロファイラー DLL へのパスを指定します。
- 複数の変数が設定されている場合、ビット固有の変数が優先されます。 これらは、ロードするプロファイラーのビットを指定します。
- 詳細については、「プロファイラー ライブラリを検索する」を参照してください。
設定の名前 | 値 | |
---|---|---|
環境変数 | 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
に設定した場合と同じです。 - パフォーマンス マップが無効になっている場合、すべてのマネージド呼び出しサイトが適切に解決されるわけではありません。
- Linux カーネルのバージョンによっては、両方の形式が
perf
ツールでサポートされます。 - perf マップまたは jit ダンプを有効にすると、10 から 20% のオーバーヘッドが発生します。 パフォーマンスへの影響を最小限に抑えるため、perf マップまたは jit ダンプのどちらかを選んで有効にし、両方とも有効にはしないことをお勧めします。
次の表は perf マップと jit ダンプの比較です。
書式 | 説明 | サポート対象 |
---|---|---|
perf マップ | 動的に生成されたコードのシンボリック情報を含む /tmp/perf-<pid>.map を出力します。ReadyToRun (R2R) モジュールのシンボル情報を含み、PerfCollect によって使われる、 /tmp/perfinfo-<pid>.map を出力します。 |
perf マップは、すべての Linux カーネル バージョンでサポートされています。 |
jit ダンプ | jit ダンプ形式は perf マップに代わるもので、いっそう詳細なシンボル情報が含まれています。 これを有効にすると、jit ダンプが /tmp/jit-<pid>.dump ファイルに出力されます。 |
Linux カーネル バージョン 5.4 以降。 |
設定の名前 | 値 | |
---|---|---|
runtimeconfig.json | N/A | N/A |
環境変数 | COMPlus_PerfMapEnabled または DOTNET_PerfMapEnabled |
0 - 無効1 - perf マップと jit ダンプの両方を有効にします2 - jit ダンプを有効にします3 - perf マップを有効にします |
パフォーマンス ログのマーカー
- 指定したシグナルのパフォーマンス ログでのマーカーとしての受け入れおよび無視を有効または無効にします。
- この設定を省略すると、指定したシグナルは無視されません。 これは、値を
0
に設定した場合と同じです。
設定の名前 | 値 | |
---|---|---|
runtimeconfig.json | N/A | N/A |
環境変数 | COMPlus_PerfMapIgnoreSignal または DOTNET_PerfMapIgnoreSignal |
0 - 無効1 - 有効 |
注意
この設定は、DOTNET_PerfMapEnabled が省略されるか、または 0
(無効) に設定されている場合は、無視されます。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET