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.

Uyarı

.NET 11'den başlayarak profil oluşturucu ortam değişkenleri hem hem de DOTNETCORECLR ön ekleri destekler. Ön DOTNET ek yeni standarttır; CORECLR geriye dönük uyumluluk için korunur ve gelecekte kaldırılabilir.

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ın adı Değerler
runtimeconfig.json Mevcut Değil Mevcut Değil
Ortam değişkeni DOTNET_EnableDiagnostics 1 -Etkin
0 -sakat

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.
  • Profil oluşturucuyu yüklemek için profil oluşturmayı etkinleştirmenin yanı sıra profil oluşturucu GUID'sinin ve profil oluşturucu konumunun da bu ayarlar kullanılarak yapılandırılması gerekir.
Ayarın adı Değerler
runtimeconfig.json Mevcut Değil Mevcut Değil
Ortam değişkeni DOTNET_ENABLE_PROFILING 0 -sakat
1 -Etkin

Profil Oluşturucu GUID'i

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

Profil oluşturucu konumu

Profil oluşturma etkinleştirildikten sonra profil oluşturucu iki şekilde yüklenebilir: ortam değişkenleriyle (çapraz platform) veya kayıt defteri aracılığıyla (yalnızca Windows). Profil oluşturucu yolu ortam değişkenleri, her ikisi de belirtilirse kayıt defterindeki herhangi bir COM kitaplık yolundan önceliklidir.

Ortam değişkeni (çapraz platform)

  • Ş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.
Ayarın adı Değerler
Ortam değişkeni CORECLR_PROFILER_PATH veya DOTNET_PROFILER_PATH dize yolu
Ortam değişkeni CORECLR_PROFILER_PATH_32 veya DOTNET_PROFILER_PATH_32 dize yolu
Ortam değişkeni CORECLR_PROFILER_PATH_64 veya DOTNET_PROFILER_PATH_64 dize yolu
Ortam değişkeni CORECLR_PROFILER_PATH_ARM32 veya DOTNET_PROFILER_PATH_ARM32 dize yolu
Ortam değişkeni CORECLR_PROFILER_PATH_ARM64 veya DOTNET_PROFILER_PATH_ARM64 dize yolu

Kayıt defteri aracılığıyla (yalnızca Windows)

DOTNET_PROFILER_PATH* Ortam değişkenleri Windows üzerinde çalışırken ayarlanmamışsa coreclr, profil oluşturucunun DLL'sinin tam yolunu bulmak için kayıt defterinden CLSID'yi DOTNET_PROFILER arar. Herhangi bir COM sunucusu DLL'sinde olduğu gibi profil oluşturucunun CLSID'si de HKEY_CLASSES_ROOT altında aranır ve bu da HKLM ve HKCU sınıflarını birleştirir.

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

  • Performans eşlemelerini veya jit dökümlerini 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 okunabilir adlar sağlaması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 20% ek yüke neden olabilir, ancak genellikle çok daha azdır. 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. Etki yalnızca uygulama JITing kodu olduğunda oluşur. Genellikle başlangıçta gerçekleşir, ancak daha sonra uygulama ilk kez yeni bir kod yolu çalıştırıyorsa oluşabilir.

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

Biçim Description 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ın adı Değerler
runtimeconfig.json Mevcut Değil Mevcut Değil
Ortam değişkeni DOTNET_PerfMapEnabled 0 -sakat
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ın adı Değerler
runtimeconfig.json Mevcut Değil Mevcut Değil
Ortam değişkeni DOTNET_PerfMapIgnoreSignal 0 -sakat
1 -Etkin

Uyarı

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