Bagikan melalui


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.

Nota

Mulai dari .NET 11, variabel lingkungan profiler mendukung DOTNET awalan dan CORECLR . DOTNET Awalan adalah standar baru; CORECLR dipertahankan untuk kompatibilitas mundur dan mungkin dihapus di masa mendatang.

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 setelan Nilai
runtimeconfig.json N/A N/A
Variabel lingkungan 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.
  • Untuk memuat profiler, selain mengaktifkan pembuatan profil, GUID profiler dan lokasi profiler juga perlu dikonfigurasi menggunakan pengaturan ini.
Nama setelan Nilai
runtimeconfig.json N/A N/A
Variabel lingkungan DOTNET_ENABLE_PROFILING 0 - dinonaktifkan
1 - diaktifkan

Profiler GUID

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

Lokasi profiler

Setelah pembuatan profil diaktifkan, profiler dapat dimuat dengan dua cara: dengan variabel lingkungan (lintas plat) atau melalui registri (hanya Windows). Variabel lingkungan jalur profiler lebih diutamakan daripada jalur pustaka COM apa pun di registri jika keduanya ditentukan.

Variabel lingkungan (lintas plat)

  • 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.
Nama setelan Nilai
Variabel lingkungan CORECLR_PROFILER_PATH atau DOTNET_PROFILER_PATH string-path
Variabel lingkungan CORECLR_PROFILER_PATH_32 atau DOTNET_PROFILER_PATH_32 string-path
Variabel lingkungan CORECLR_PROFILER_PATH_64 atau DOTNET_PROFILER_PATH_64 string-path
Variabel lingkungan CORECLR_PROFILER_PATH_ARM32 atau DOTNET_PROFILER_PATH_ARM32 string-path
Variabel lingkungan CORECLR_PROFILER_PATH_ARM64 atau DOTNET_PROFILER_PATH_ARM64 string-path

Melalui registri (hanya Windows)

DOTNET_PROFILER_PATH* Ketika variabel lingkungan tidak diatur saat berjalan di Windows, coreclr mencari CLSID dari DOTNET_PROFILER dalam registri untuk menemukan jalur lengkap ke DLL profiler. Sama seperti dengan DLL server COM apa pun, CLSID profiler dicari di bawah HKEY_CLASSES_ROOT, yang menggabungkan kelas dari HKLM dan HKCU.

Mengekspor peta perf dan cadangan jit

  • Mengaktifkan atau menonaktifkan peta perf atau jit dump. File-file ini memungkinkan alat pihak ketiga, seperti alat Linux perf , untuk memberikan nama yang dapat dibaca manusia 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 dapat menyebabkan overhead hingga 20%, meskipun sering kali jauh lebih sedikit. Untuk meminimalkan dampak performa, sebaiknya aktifkan peta perf atau jit dump secara selektif, tetapi tidak keduanya. Dampak hanya terjadi saat aplikasi adalah kode JITing. Sering kali itu terjadi saat startup, tetapi mungkin terjadi nanti jika aplikasi menjalankan jalur kode baru untuk pertama kalinya.

Tabel berikut membandingkan peta perf dan peta jit.

Rancangan Description 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 setelan Nilai
runtimeconfig.json N/A N/A
Variabel lingkungan 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 setelan Nilai
runtimeconfig.json N/A N/A
Variabel lingkungan DOTNET_PerfMapIgnoreSignal 0 - dinonaktifkan
1 - diaktifkan

Nota

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