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 . Örnek olay incelemesi: 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.
- Örnek olay incelemesi: Kodu iyileştirmeye yönelik başlangıç kılavuzu
- Performans sorununu yalıtma
- Yeni İzleme Aracı ile Visual Studio performansını iyileştirme
- Örnek Olay İncelemesi: 30 dakikanın altında çift performans