Opsi konfigurasi runtime untuk penelusuran kesalahan dan pembuatan profil

Artikel ini merinci pengaturan yang dapat Anda gunakan untuk mengonfigurasi penelusuran kesalahan dan pembuatan profil .NET.

Catatan

.NET 6 menstandarkan pada prefiks DOTNET_ daripada COMPlus_ untuk variabel lingkungan yang mengonfigurasi perilaku run-time .NET. Namun, prefiks COMPlus_ akan terus berfungsi. Jika Anda menggunakan versi runtime .NET sebelumnya, Anda masih harus menggunakan prefiks COMPlus_ untuk variabel lingkungan.

Mengaktifkan diagnostik

  • Mengonfigurasi apakah debugger, profiler, dan diagnostik EventPipe diaktifkan atau dinonaktifkan.
  • Jika Anda menghilangkan pengaturan ini, diagnostik diaktifkan. Ini sama dengan mengatur nilai ke 1.
Nama pengaturan Nilai
runtimeconfig.json T/A T/A
Variabel lingkungan COMPlus_EnableDiagnostics atau DOTNET_EnableDiagnostics 1 - diaktifkan
0 - dinonaktifkan

Mengaktifkan pembuatan profil

  • Mengonfigurasi apakah pembuatan profil diaktifkan untuk proses yang sedang berjalan.
  • Jika Anda menghilangkan pengaturan ini, pembuatan profil dinonaktifkan. Ini sama dengan mengatur nilai ke 0.
Nama pengaturan Nilai
runtimeconfig.json T/A T/A
Variabel lingkungan CORECLR_ENABLE_PROFILING 0 - dinonaktifkan
1 - diaktifkan

Profiler GUID

  • Menentukan GUID profiler yang akan dimuat ke dalam proses yang sedang berjalan.
Nama pengaturan Nilai
runtimeconfig.json T/A T/A
Variabel lingkungan CORECLR_PROFILER string-guid

Lokasi profiler

  • Menentukan jalur ke DLL profiler untuk dimuat ke dalam proses yang sedang berjalan (atau proses 32-bit atau 64-bit).
  • Jika lebih dari satu variabel diatur, variabel khusus bitness diutamakan. Mereka menentukan bitness profiler mana yang akan dimuat.
  • Untuk informasi selengkapnya, lihat Menemukan pustaka profiler.
Nama pengaturan Nilai
Variabel lingkungan CORECLR_PROFILER_PATH string-path
Variabel lingkungan CORECLR_PROFILER_PATH_32 string-path
Variabel lingkungan CORECLR_PROFILER_PATH_64 string-path

Mengekspor peta perf dan cadangan jit

  • Mengaktifkan atau menonaktifkan pengaktifan selektif peta perf atau jit dump. File-file ini memungkinkan alat pihak ketiga, seperti alat Linux perf , untuk mengidentifikasi situs panggilan untuk kode yang dihasilkan secara dinamis dan modul ReadyToRun (R2R) yang telah dikompilasi sebelumnya.
  • Jika Anda menghilangkan pengaturan ini, menulis peta perf dan file cadangan jit keduanya dinonaktifkan. Ini sama dengan mengatur nilai ke 0.
  • Ketika peta perf dinonaktifkan, tidak semua panggilan terkelola akan diselesaikan dengan benar.
  • Bergantung pada versi kernel Linux, kedua format didukung oleh alat ini perf .
  • Mengaktifkan peta perf atau cadangan jit menyebabkan overhead 10-20%. Untuk meminimalkan dampak performa, sebaiknya aktifkan peta perf atau jit dump secara selektif, tetapi tidak keduanya.

Tabel berikut membandingkan peta perf dan peta jit.

Format Deskripsi Didukung pada
Peta perf Memancarkan /tmp/perf-<pid>.map, yang berisi informasi simbolis untuk kode yang dihasilkan secara dinamis.
Memancarkan /tmp/perfinfo-<pid>.map, yang mencakup informasi simbol modul ReadyToRun (R2R) dan digunakan oleh PerfCollect.
Peta perf didukung pada semua versi kernel Linux.
Cadangan Jit Format jit dump menggantikan peta perf dan berisi informasi simbolis yang lebih rinci. Saat diaktifkan, cadangan jit adalah output ke /tmp/jit-<pid>.dump file. Kernel Linux versi 5.4 atau lebih tinggi.
Nama pengaturan Nilai
runtimeconfig.json T/A T/A
Variabel lingkungan COMPlus_PerfMapEnabled atau DOTNET_PerfMapEnabled 0 - dinonaktifkan
1 - peta perf dan jit dump diaktifkan
2 - jit dump diaktifkan
3 - peta perf diaktifkan

Penanda log perf

  • Mengaktifkan atau menonaktifkan sinyal yang ditentukan untuk diterima dan diabaikan sebagai penanda dalam log perf.
  • Jika Anda menghilangkan pengaturan ini, sinyal yang ditentukan tidak diabaikan. Ini sama dengan mengatur nilai ke 0.
Nama pengaturan Nilai
runtimeconfig.json T/A T/A
Variabel lingkungan COMPlus_PerfMapIgnoreSignal atau DOTNET_PerfMapIgnoreSignal 0 - dinonaktifkan
1 - diaktifkan

Catatan

Pengaturan ini diabaikan jika DOTNET_PerfMapEnabled dihilangkan atau diatur ke 0 (yaitu, dinonaktifkan).