Hangi performans aracını kullanmalıyım? (C#, Visual Basic, C++, F#)

Visual Studio, uygulama türünüze bağlı olarak farklı türlerdeki uygulama performansı sorunlarını tanılamanıza yardımcı olacak çeşitli profil oluşturma araçları sağlar. Bu makalede, senaryonuz ve uygulama türünüz için doğru aracı bulmanıza yardımcı olacak bilgiler sağlıyoruz.

Profil oluşturma araçlarını kullanarak kodu iyileştirmeye yönelik genel bir yaklaşım için bkz . Kodu iyileştirmeye yönelik Başlangıç kılavuzu.

Hangi aracı kullanmalıyım?

Aşağıdaki tabloda Visual Studio'nın sunduğu farklı araçlar listelenir ve aracı seçmek için yaygın senaryolar sağlanır.

Performans Aracı Açıklama Araç ne zaman kullanılır?
CPU Kullanımı CPU'ların zaman harcadığı yeri gösterir. • Genel performans sorunları için bir araştırma başlatın.
• Yüksek sunucu CPU kullanımını araştırın.
• Siparişlerin perakende web sitesine geçmediği durumlar gibi DevOps senaryolarını araştırın.
• CPU kullanımını iyileştirin.
• API çağrılarındaki gecikme süresini araştırın.
Alev grafiği Çağrı ağacının alternatif bir görselleştirmesini sağlayan CPU Kullanımı aracının içinde görüntüleyin. API çağrılarındaki gecikme süresini araştırma
Sık erişimli yol CPU süresinin büyük bölümünün uygulamanızda nerede harcandığını gösteren CPU Kullanımı aracının içinde görüntüleyin. API çağrılarındaki gecikme süresini araştırma
Bellek Kullanımı Bellek sızıntıları gibi sorunları bulmak için uygulamanızın belleğini gösterir. • Bellek kullanımını
iyileştirme• Kullanıcı arabirimi donması
araştırma• Şüpheli bellek sızıntısını araştırma (yerel kod)
.NET Nesne Ayırma .NET Nesnelerinin nereye ayrıldığını ve çöp toplama hakkındaki bilgileri gösterir. • .NET bellek kullanımını
iyileştirme• Atık toplamayı analiz etme
Enstrümantasyon Tam arama sayılarını ve arama sürelerini gösterir. • CPU Kullanımı gibi bir araç gerekir, ancak tam çağrı sayıları ve duvar saati zamanına göre işlevlerde harcanan zamanı istiyorsunuz.
• Kilitleri beklerken harcanan süre gibi engellenen zamanı görmek istiyorsunuz.
• Not: Bu araç fazladan ek yük gerektirir.
Dosya G/Ç Dosya G/Ç işlemlerinizi, ne kadar süreyle çalıştıklarını ve ne kadar veri işlediklerini gösterir. Kullanıcı arabirimini dondurmayı araştırma
PerfTips Kodunuzla etkileşim kurarken performans bilgilerinin hızlı ölçümlerini gösterir. Hata ayıklama sırasında, önceki adım işlemi (veya kesme noktası) ile geçerli adım veya kesme noktası arasındaki geçen süreyi görmek istiyorsunuz.
Olay görüntüleyicisi HTTP isteklerini, günlük iletilerini ve özel durumları gösterir. • API çağrılarındaki
gecikme süresini araştırma• Uzak bir web sunucusunda çalışan yavaş uygulamayı araştırma
.NET Async .NET uygulamalarında zaman uyumsuz/await kullanımını gösterir. Zaman uyumsuz kodla ilgili şüpheli performans sorununu araştırın.
.NET Sayaçları .NET sayaçları için canlı rapor. • Genel performans sorunları için bir araştırma başlatın.
• Saniye başına özel durumlar, çöp toplama ve CPU kullanımı gibi .NET sayaç tabanlı ölçümler için bir izleme istiyorsunuz.
Veritabanı Veritabanı sorgularınızın performansını gösterir. ADO.NET veya Entity Framework Core kullanan veritabanı sorgularının performansını araştırın.
GPU Kullanımı Direct3D uygulamanızın üst düzey donanım kullanımını gösterir. Uygulamanızın performansının CPU'ya mı yoksa GPU'ya bağlı mı olduğunu denetleyin.
Uygulama Zaman Çizelgesi XAML uygulamaları için kullanıcı arabirimi performansını gösterir. Çerçeveleri işlemek için harcanan süre gibi XAML uygulamalarında kullanıcı arabirimi performansını araştırın.
IntelliTrace Olayları kaydetmenize ve çeşitli yürütme noktalarında uygulama durumunuzu incelemenize olanak tanıyan hata ayıklayıcı aracı. Bir aracın yalnızca geçerli uygulama durumunu değil, çeşitli noktalarda uygulama durumunu incelemesini istiyorsunuz.

Projem için hangi araçlar destekleniyor?

Aşağıdaki tabloda Visual Studio'nın sunduğu farklı araçlar ve bunları kullanabileceğiniz farklı proje türleri listelenmiştir:

Performans Aracı .NET C/C++ UWP ASP.NET/ASP.NET Core
CPU Kullanımı evet evet evet evet
Bellek Kullanımı evet evet evet evet
.NET Nesne Ayırma evet hayır evet evet
Enstrümantasyon evet evet evet evet
Dosya G/Ç evet evet evet evet
PerfTips evet evet evet evet
Olay görüntüleyicisi evet evet evet evet
.NET Async evet hayır evet evet
.NET Sayaçları Evet (yalnızca.NET Core/5+ ) hayır hayır evet (yalnızca ASP.NET Çekirdek)
Veritabanı Evet (yalnızca.NET Core/5+ ) hayır hayır evet (yalnızca ASP.NET Çekirdek)
GPU Kullanımı evet evet evet hayır
Uygulama Zaman Çizelgesi evet (XAML) hayır evet hayır
Performans Gezgini hayır hayır hayır hayır
IntelliTrace Yalnızca Visual Studio Enterprise ile .NET hayır Yalnızca Visual Studio Enterprise ile .NET Yalnızca Visual Studio Enterprise ile .NET

Linux'ta hangi araçlar desteklenir?

Hedef platform olarak Linux ve Windows ile aşağıdaki araçlar desteklenir:

  • CPU Kullanımı
  • .NET Nesne Ayırma İzlemesi
  • .NET Async
  • .NET Sayaçları
  • Olay Görüntüleyicisi
  • Veritabanı

Profil oluşturucuları kullanmayı öğrenin

Aşağıdaki makaleler ve blog gönderileri, Visual Studio performans araçlarını etkili bir şekilde kullanmayı öğrenmenize yardımcı olacak daha fazla bilgi sağlar.