Aracılığıyla paylaş


Hata ayıklama ve profil oluşturma için çalışma zamanı yapılandırma seçenekleri

Bu makalede, .NET hata ayıklama ve profil oluşturmayı yapılandırmak için kullanabileceğiniz ayarlar ayrıntılı olarak anlatılır.

Dekont

.NET 6, .NET çalışma zamanı davranışını yapılandıran ortam değişkenleri yerine COMPlus_ ön eki DOTNET_ standartlaştırır. Ancak ön COMPlus_ ek çalışmaya devam eder. .NET çalışma zamanının önceki bir sürümünü kullanıyorsanız, ortam değişkenleri için ön eki kullanmaya COMPlus_ devam etmelisiniz.

Tanılamayı etkinleştirme

  • Hata ayıklayıcının, profil oluşturucunun ve EventPipe tanılamalarının etkinleştirilip etkinleştirilmediğini veya devre dışı bırakılıp bırakılmayacağını yapılandırılır.
  • Bu ayarı atlarsanız tanılama etkinleştirilir. Bu, değerini 1olarak ayarlamakla eşdeğerdir.
Ayar adı Değerler
runtimeconfig.json Geçersiz Geçersiz
Ortam değişkeni COMPlus_EnableDiagnostics veya DOTNET_EnableDiagnostics 1 -Etkin
0 -Devre dışı

Profil oluşturmayı etkinleştirme

  • Şu anda çalışan işlem için profil oluşturmanın etkinleştirilip etkinleştirilmediğini yapılandırılır.
  • Bu ayarı atlarsanız profil oluşturma devre dışı bırakılır. Bu, değerini 0olarak ayarlamakla eşdeğerdir.
Ayar adı Değerler
runtimeconfig.json Geçersiz Geçersiz
Ortam değişkeni CORECLR_ENABLE_PROFILING 0 -Devre dışı
1 -Etkin

Profil Oluşturucu GUID'i

  • Şu anda çalışan işleme yüklenecek profil oluşturucunun GUID'sini belirtir.
Ayar adı Değerler
runtimeconfig.json Geçersiz Geçersiz
Ortam değişkeni CORECLR_PROFILER string-guid

Profil oluşturucu konumu

  • Şu anda çalışan işleme (veya 32 bit veya 64 bit işleme) yüklenecek profil oluşturucu DLL'sinin yolunu belirtir.
  • Birden fazla değişken ayarlanırsa, bitliğe özgü değişkenler önceliklidir. Profil oluşturucunun yüklenecek bit değerini belirtir.
  • Daha fazla bilgi için bkz . Profil oluşturucu kitaplığını bulma.
Ayar adı Değerler
Ortam değişkeni CORECLR_PROFILER_PATH dize yolu
Ortam değişkeni CORECLR_PROFILER_PATH_32 dize yolu
Ortam değişkeni CORECLR_PROFILER_PATH_64 dize yolu

Performans haritalarını ve jit dökümlerini dışarı aktarma

  • Performans eşlemelerinin veya jit dökümlerinin seçmeli olarak etkinleştirilmesini etkinleştirir veya devre dışı bırakır. Bu dosyalar, Linux perf aracı gibi üçüncü taraf araçlarının dinamik olarak oluşturulan kod ve önceden derlenmiş ReadyToRun (R2R) modülleri için çağrı sitelerini tanımlamasına olanak sağlar.
  • Bu ayarı atlarsanız, performans eşlemesi ve jit dökümü dosyalarının her ikisi de devre dışı bırakılır. Bu, değerini 0olarak ayarlamakla eşdeğerdir.
  • Performans eşlemeleri devre dışı bırakıldığında, tüm yönetilen çağrı siteleri düzgün çözümlenmez.
  • Linux çekirdek sürümüne bağlı olarak, her iki biçim de araç tarafından perf desteklenir.
  • Performans eşlemelerinin veya jit dökümlerinin etkinleştirilmesi %10-20 ek yüke neden olur. Performans etkisini en aza indirmek için performans eşlemelerini veya jit dökümlerini seçmeli olarak etkinleştirmeniz önerilir, ancak her ikisini birden etkinleştirmeniz önerilmez.

Aşağıdaki tabloda performans eşlemeleri ve jit eşlemeleri karşılaştırır.

Biçimlendir Açıklama Desteklenme tarihi:
Performans haritaları /tmp/perf-<pid>.mapDinamik olarak oluşturulan kod için sembolik bilgiler içeren öğesini yayar.
/tmp/perfinfo-<pid>.mapReadyToRun (R2R) modülü sembol bilgilerini içeren ve PerfCollect tarafından kullanılan öğesini yayar.
Performans eşlemeleri tüm Linux çekirdek sürümlerinde desteklenir.
Jit dökümleri Jit döküm biçimi, performans eşlemelerinin yerini alır ve daha ayrıntılı sembolik bilgiler içerir. Etkinleştirildiğinde, dosyalara /tmp/jit-<pid>.dump jit dökümleri çıkışı yapılır. Linux çekirdek sürümleri 5.4 veya üzeri.
Ayar adı Değerler
runtimeconfig.json Geçersiz Geçersiz
Ortam değişkeni COMPlus_PerfMapEnabled veya DOTNET_PerfMapEnabled 0 -Devre dışı
1 - perf haritalar ve jit dökümleri her ikisi de etkin
2 - jit dökümleri etkin
3 - performans haritaları etkin

Performans günlüğü işaretçileri

  • Belirtilen sinyalin performans günlüklerinde işaretleyici olarak kabul edilmesi ve yoksayılması için etkinleştirir veya devre dışı bırakır.
  • Bu ayarı atlarsanız, belirtilen sinyal yoksayılmaz. Bu, değerini 0olarak ayarlamakla eşdeğerdir.
Ayar adı Değerler
runtimeconfig.json Geçersiz Geçersiz
Ortam değişkeni COMPlus_PerfMapIgnoreSignal veya DOTNET_PerfMapIgnoreSignal 0 -Devre dışı
1 -Etkin

Dekont

DOTNET_PerfMapEnabled atlanırsa veya olarak ayarlanırsa 0 (yani devre dışı bırakıldıysa) bu ayar yoksayılır.