Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 - diaktifkan0 - 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 - dinonaktifkan1 - 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 - dinonaktifkan1 - peta perf dan jit dump diaktifkan2 - jit dump diaktifkan3 - 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 - dinonaktifkan1 - diaktifkan |
Nota
Pengaturan ini diabaikan jika DOTNET_PerfMapEnabled dihilangkan atau diatur ke 0 (yaitu, dinonaktifkan).