Profil oluşturma araçlarına ilk bakış (C#, Visual Basic, C++, F#)
Uygulama performansı ölçüm araçları, kodlarını iyileştirmek ve uygulama performansını geliştirmek isteyen geliştiriciler için önemlidir. Visual Studio, bellek ve CPU kullanımını ve diğer uygulama düzeyindeki sorunları tanılamanıza yardımcı olabilecek çeşitli profil oluşturma ve tanılama araçları sunar. Bu araçları kullanarak, uygulamanızı çalıştırırken performans verileri toplayabilirsiniz. Profil oluşturucu, uygulamanız için yürütme sürelerinin ve CPU kullanımının görsel bir gösterimini sağlayarak hızlı bir şekilde bilinçli kararlar almanıza yardımcı olabilir. Bu makalede en yaygın profil oluşturma araçlarına hızlıca göz atacağız.
Doğru aracı seçme konusunda yardım almak veya farklı uygulama türleri için profil oluşturma aracı desteğini görmek için bkz . Hangi aracı kullanmalıyım? Profil oluşturma araçlarını kullanarak kodu iyileştirmeye yönelik genel bir yaklaşım gösteren bir öğretici için bkz . Örnek olay incelemesi: Kodu iyileştirmeye yönelik başlangıç kılavuzu.
Yayın derlemelerinde performansı ölçme
Performans Profili Oluşturucu'daki araçlar, Yayın derlemeleri için analiz sağlamak üzere tasarlanmıştır. Performans Profili Oluşturucu'da, uygulama çalışırken tanılama bilgilerini toplayabilir ve uygulama durdurulduktan sonra toplanan bilgileri inceleyebilirsiniz (bir son durum analizi).
Performans Profili Oluşturucu'da Hata Ayıkla>(veya Alt + F2) seçeneğini belirleyerek Performans Profili Oluşturucu'yu açın.
Performans Profili Oluşturucusu'nda CPU Kullanımı veya Bellek kullanımı aracının yanı sıra hata ayıklayıcıyla tümleşik araçlar hakkında daha fazla bilgi için bkz . Hata ayıklayıcı ile veya hata ayıklayıcı olmadan profil oluşturma araçlarını çalıştırma.
Performans Profili Oluşturucu'da bulunan araçlar şunlardır:
- CPU kullanımı
- .NET nesne ayırma
- Bellek kullanımı
- Enstrümantasyon
- .NET zaman uyumsuz aracı
- Dosya G/Ç
- .NET Sayaçları
- Veritabanı aracı
- GPU kullanımı
Farklı uygulama türleri için profil oluşturma aracı desteğini görmek için bkz . Hangi aracı kullanmalıyım?.
Bazı senaryolarda, pencere birden çok profil oluşturma aracı seçmenize olanak tanır. CPU Kullanımı gibi araçlar, çözümlemenize yardımcı olmak için kullanabileceğiniz tamamlayıcı veriler sağlayabilir. Birden çok profil oluşturma aracı içeren senaryoları etkinleştirmek için komut satırı profil oluşturucusunu da kullanabilirsiniz.
Hata ayıklama sırasında performansı ölçme
Hata ayıklama oturumu sırasında erişebileceğiniz profil oluşturma araçları Tanılama Araçları penceresinde bulunur. Tanılama Araçları penceresi, siz kapatmadığınız sürece otomatik olarak görüntülenir. Pencereyi açmak için Hata Ayıkla / Windows / Tanılama Araçlarını Göster'e tıklayın (veya Ctrl + Alt + F2 tuşlarına basın). Pencere açıkken, veri toplamak istediğiniz araçları seçebilirsiniz.
Hata ayıklarken TANıLAMA Araçları penceresini kullanarak CPU, bellek kullanımı, .NET sayaçlarını analiz edebilir ve performansla ilgili bilgileri gösteren olayları görüntüleyebilirsiniz.
Hata ayıklarken TANıLAMA Araçları penceresini kullanarak CPU ve bellek kullanımını analiz edebilir ve performansla ilgili bilgileri gösteren olayları görüntüleyebilirsiniz.
Tanılama Araçları penceresi, uygulamaların profilini oluşturmanın yaygın bir yoludur, ancak Yayın derlemeleri için bunun yerine uygulamanızın son durum analizini de yapabilirsiniz. Farklı yaklaşımlar hakkında daha fazla bilgi için bkz . Hata ayıklayıcı ile veya hata ayıklayıcı olmadan profil oluşturma araçlarını çalıştırma. Farklı uygulama türleri için profil oluşturma aracı desteğini görmek için bkz . Hangi aracı kullanmalıyım?.
Tanılama Araçları penceresinde veya hata ayıklama oturumu sırasında kullanılabilen araçlar şunlardır:
İpucu
Başlatma sayfasını atlamak için yeniden başlatmayı kullanın ve Alt+F2 tuşlarına basarak veya Performans Profili Oluşturucu hatalarını ayıkla'ya > tıklayarak önceki ayarlarınızla otomatik olarak çalıştırın.
Not
Hata ayıklayıcı ile profil oluşturma araçlarını çalıştırmak için Windows 8 ve üzeri gereklidir (Tanılama Araçları penceresi).
CPU kullanımını analiz etme
CPU Kullanımı aracı, uygulamanızın performansını analiz etmeye başlamak için iyi bir yerdir. Uygulamanızın tüketilen CPU kaynakları hakkında daha fazla bilgi sağlar. Hata ayıklayıcıyla tümleşik CPU Kullanımı aracını veya son kullanılan CPU Kullanımı aracını kullanabilirsiniz.
Hata ayıklayıcıyla tümleşik CPU Kullanımı aracını kullanırken Tanılama Aracı penceresini açın (kapalıysa Hata Ayıklama / Windows / Tanılama Araçlarını Göster'i seçin). Hata ayıklarken Özet görünümünü açın ve CPU Profilini Kaydet'i seçin.
Aracı kullanmanın bir yolu, kodunuzda biri işlevin başında, diğeri de işlevin sonunda veya analiz etmek istediğiniz kodun bölgesinde olmak üzere iki kesme noktası ayarlamaktır. İkinci kesme noktasında duraklatıldığında profil oluşturma verilerini inceleyin.
CPU Kullanımı görünümü, en uzun süre çalışan işlev En Uzun İşlevler altında en üstte olacak şekilde sıralanmış işlevlerin listesini gösterir. Sık Erişimli Yol bölümünde en çok CPU kullanan işlevlerin çağrı yığını gösterilir. Bu listeler performans sorunlarının yaşandığı işlevlerde size yol gösterebilir.
CPU Kullanımı görünümü, en uzun süre çalışan işlev en üstte olacak şekilde en uzun süre çalışana göre sıralanmış işlevlerin listesini gösterir. Bu, performans sorunlarının yaşandığı işlevlerde size yol gösterebilir.
İlgilendiğiniz bir işleve tıkladığınızda, seçili işlevin vurgulandığı daha ayrıntılı bir Çağrı ağacı görünümü görürsünüz. Tabloda işlevler (Toplam CPU) olarak adlandırılanlar dahil olmak üzere işlevde harcanan süre gibi verileri içeren sütunlar ve işlevler (Self CPU) hariç bir işlevde harcanan zamanı gösteren ikinci bir sütun gösterilir. Bu veriler, işlevin kendisinin performans sorunu olup olmadığını değerlendirmenize yardımcı olabilir.
İpucu
Visual Studio profil oluşturucu, izlemeleri toplamayı ve görüntülemeyi destekler. Profil oluşturucu daha önce dotnet-trace gibi diğer araçlar tarafından toplanan izlemeleri de görüntüleyebilir. Dotnet-trace, izlemeli izleme değil örnekleme sonuçları üretir. Daha fazla bilgi için bkz . dotnet-trace.
İlgilendiğiniz bir işleve tıkladığınızda, pencerenin ortasında seçili işlev, solda çağırma işlevi ve sağda çağrılan işlevler ile daha ayrıntılı bir üç bölmeli "kelebek" görünümü görürsünüz. İşlev Gövdesi bölümü, işlev gövdesinde harcanan toplam süreyi (ve zaman yüzdesini) işlev çağırmada harcanan ve çağrılan işlevler dışında gösterir. Bu veriler, işlevin kendisinin performans sorunu olup olmadığını değerlendirmenize yardımcı olabilir.
Bellek kullanımını analiz etme
Tanılama Araçları penceresi, Bellek Kullanımı aracını kullanarak uygulamanızdaki bellek kullanımını değerlendirmenize de olanak tanır. Örneğin, yığındaki nesnelerin sayısına ve boyutuna bakabilirsiniz. Performans Profili Oluşturucu'da hata ayıklayıcıyla tümleşik Bellek Kullanımı aracını veya son bellek kullanımı aracını kullanabilirsiniz.
.NET geliştiricileri .NET Nesne Ayırma aracı veya Bellek kullanım aracı arasında seçim yapabilir.
- .NET Nesne Ayırma aracı, .NET kodunuzdaki ayırma desenlerini ve anomalilerini belirlemenize yardımcı olur ve çöp toplamayla ilgili yaygın sorunları belirlemenize yardımcı olur. Bu araç yalnızca bir son durum sonrası aracı olarak çalışır. Bu aracı yerel veya uzak makinelerde çalıştırabilirsiniz.
- Bellek kullanımı aracı, genellikle .NET uygulamalarında yaygın olmayan bellek sızıntılarını belirlemede yararlıdır. Kodda adımlama gibi belleği denetlerken hata ayıklayıcı özelliklerini kullanmanız gerekiyorsa hata ayıklayıcıyla tümleşik Bellek kullanım aracı önerilir.
Bellek Kullanımı aracıyla bellek kullanımını analiz etmek için en az bir bellek anlık görüntüsü almanız gerekir. Genellikle, belleği analiz etmenin en iyi yolu iki anlık görüntü almaktır; şüpheli bellek sorunundan önceki ilk sağ ve şüpheli bir bellek sorunu oluştuktan hemen sonra ikinci anlık görüntü. Ardından iki anlık görüntünün farkını görüntüleyebilir ve tam olarak nelerin değiştiğini görebilirsiniz. Aşağıdaki çizimde hata ayıklayıcıyla tümleşik araçla anlık görüntü alma gösterilmektedir.
Ok bağlantılarından birini seçtiğinizde, yığının diferansiyel bir görünümü verilir (artan nesne sayısını (sol) veya artan yığın boyutunu (sağ) gösteren kırmızı yukarı ok ). Sağ bağlantıya tıklarsanız, yığın boyutu en fazla artan nesnelere göre sıralanmış bir değişiklik yığını görünümü elde edersiniz. Bu, bellek sorunlarını saptamanıza yardımcı olabilir. Örneğin, aşağıdaki çizimde, nesneler tarafından ClassHandlersStore
kullanılan bayt sayısı ikinci anlık görüntüde 3.492 bayt artmış.
Bellek Kullanımı görünümünde bunun yerine soldaki bağlantıya tıklarsanız yığın görünümü nesne sayısına göre düzenlenir; belirli bir türün sayı olarak en çok artan nesneleri en üstte gösterilir (Count Diff sütununa göre sıralanır).
İzleme
İzleme aracı CPU Kullanımı aracına benzer, ancak CPU kullanımı yerine tam çağrı sayıları ve duvar saati süresi sağlar. İzleme yöntemi, CPU Kullanımı aracından daha fazla ek yük gerektirir. Bu araç Performans Profili Oluşturucu'da kullanılabilir. Performans Profili Oluşturucu'da Hata Ayıkla>(veya Alt + F2) seçeneğini belirleyerek Performans Profili Oluşturucu'yu açın. Daha fazla bilgi için bkz . İzleme.
Dosya G/Ç'sini İncele
Dosya G/Ç aracı, uygulamalarınızdaki performansı geliştirmek için Dosya G/Ç işlemlerinizi nasıl iyileştirebileceğinizi anlamanıza yardımcı olur. Yavaş yükleme sürelerini araştırmaya ve tanılamaya çalışıyorsanız, yeni Dosya GÇ aracı G/Ç işlemlerinin harcanan zamanınızı nasıl etkilediğini anlamanıza yardımcı olabilir. Bu araç Performans Profili Oluşturucu'da kullanılabilir. Performans Profili Oluşturucu'da Hata Ayıkla > (veya Alt + F2) seçeneğini belirleyerek Performans Profili Oluşturucu'yu açın.
Araç, sekmeli liste görünümünde dosya okuma ve dosya yazma işlemlerini gösterir.
PerfTips kullanarak performansı inceleme
Performans bilgilerini görüntülemenin en kolay yolu genellikle PerfTips kullanmaktır. PerfTips'i kullanarak kodunuzla etkileşim kurarken performans bilgilerini görüntüleyebilirsiniz. Olayın süresi (hata ayıklayıcının en son duraklatıldığı veya uygulamanın ne zaman başlatıldığı) gibi bilgileri de kontrol edebilirsiniz. Örneğin, kodda (F10, F11) adım adım ilerlerseniz, Perftips size önceki adım işleminden geçerli adıma kadar olan uygulama çalışma zamanı süresini gösterir.
Bir kod bloğunun yürütülmesinin ne kadar sürdüğünü veya tek bir işlevin tamamlanmasının ne kadar sürdüğünü incelemek için PerfTips'i kullanabilirsiniz.
PerfTips, Tanılama Araçları'nın Olaylar görünümünde de görünen olayları gösterir. Olaylar görünümünde, hata ayıklarken oluşan kesme noktası ayarı veya kod adımlama işlemi gibi farklı olayları görüntüleyebilirsiniz.
Not
Visual Studio Enterprise'larınız varsa, bu sekmede IntelliTrace olaylarını da görebilirsiniz.
Zaman uyumsuz kodu analiz etme (.NET)
.NET Async aracı, uygulamanızdaki zaman uyumsuz kodun performansını analiz etmenizi sağlar. Bu araç Performans Profili Oluşturucu'da kullanılabilir. Performans Profili Oluşturucu'da Hata Ayıkla>(veya Alt + F2) seçeneğini belirleyerek Performans Profili Oluşturucu'yu açın.
Araç, her zaman uyumsuz işlemi bir liste görünümünde gösterir. Zaman uyumsuz işlemin başlangıç saati, bitiş saati ve toplam süresi gibi bilgileri görebilirsiniz.
Zaman uyumsuz kodu analiz etme (.NET)
.NET Async aracı, uygulamanızdaki zaman uyumsuz kodun performansını analiz etmenizi sağlar. Bu araç Performans Profili Oluşturucu'da kullanılabilir. Performans Profili Oluşturucu'da Hata Ayıkla>(veya Alt + F2) seçeneğini belirleyerek Performans Profili Oluşturucu'yu açın.
Araç, her zaman uyumsuz işlemi bir liste görünümünde gösterir. Zaman uyumsuz işlemin başlangıç saati, bitiş saati ve toplam süresi gibi bilgileri görebilirsiniz.
Veritabanı performansını analiz etme (.NET Core)
ADO.NET veya Entity Framework Core kullanan .NET Core uygulamaları için Veritabanı aracı, uygulamanızın tanılama oturumu sırasında yaptığı veritabanı sorgularını kaydetmenize olanak tanır. Ardından, uygulamanızın performansının geliştirilebileceği yerleri bulmak için tek tek sorgularla ilgili bilgileri analiz edebilirsiniz. Bu araç Performans Profili Oluşturucu'da kullanılabilir. Performans Profili Oluşturucu'da Hata Ayıkla>(veya Alt + F2) seçeneğini belirleyerek Performans Profili Oluşturucu'yu açın.
Araç, her sorguyu bir liste görünümünde gösterir. Sorgu başlangıç saati ve süresi gibi bilgileri görebilirsiniz.
.NET sayaçlarını görselleştirme (.NET Core)
Visual Studio 2019 sürüm 16.7'den başlayarak, performans sayaçlarını görselleştirmek için Visual Studio'daki .NET Sayaçları aracını kullanabilirsiniz. Dotnet sayaçları kullanılarak oluşturulan sayaçları görselleştirebilirsiniz. dotnet sayaçları CPU kullanımı ve çöp toplayıcı yığın boyutu gibi birçok sayacı destekler.
Araç, liste görünümündeki her sayaç için canlı değerleri gösterir.
Uygulama olaylarını inceleme
Genel olay görüntüleyicisi , uygulamanızın Visual Studio profil oluşturucusunun içinde nasıl çalıştığını daha iyi tanılamaya yardımcı olmak için modül yükü, iş parçacığı başlatma ve sistem yapılandırmaları gibi olayların listesi aracılığıyla uygulamanızın etkinliğini görüntülemenizi sağlar. Bu araç Performans Profili Oluşturucu'da kullanılabilir. Performans Profili Oluşturucu'da Hata Ayıkla>(veya Alt + F2) seçeneğini belirleyerek Performans Profili Oluşturucu'yu açın.
Araç, her olayı bir liste görünümünde gösterir. Sütunlar her olay hakkında olay adı, zaman damgası ve işlem kimliği gibi bilgiler sağlar.
Zaman çizelgesi grafiklerinde özel olayları görüntüleme
CPU kullanımı ve bellek kullanımı zaman çizelgesi grafikleri gibi zaman çizelgesi grafiklerinde simge olarak görünen özel olayları programlı olarak oluşturabilirsiniz. Daha fazla bilgi için bkz . Zaman çizelgesine kullanıcı işaretleri ekleme.
Kaynak tüketimini analiz etme (XAML)
Windows masaüstü WPF uygulamaları ve UWP uygulamaları gibi XAML uygulamalarında, Uygulama Zaman Çizelgesi aracını kullanarak kaynak tüketimini analiz edebilirsiniz. Örneğin, uygulamanızın ui çerçeveleri (düzen ve işleme), ağ ve disk isteklerine hizmet verme ve uygulama başlatma, sayfa yükleme ve Pencere yeniden boyutlandırma gibi senaryolarda harcadığı zamanı analiz edebilirsiniz. Aracı kullanmak için Performans Profili Oluşturucu'da Uygulama Zaman Çizelgesi'ni ve ardından Başlat'ı seçin. Uygulamanızda, kaynak tüketiminden şüphelenilen bir sorunla ilgili senaryoyu gözden geçirin ve ardından raporu oluşturmak için Koleksiyonu durdur'u seçin.
Görsel aktarım hızı grafiğindeki düşük kare hızları, uygulamanızı çalıştırırken gördüğünüz görsel sorunlara karşılık gelebilir. Benzer şekilde, ui iş parçacığı kullanım grafiğindeki yüksek sayılar da kullanıcı arabirimi yanıt verme sorunlarına karşılık gelebilir. Raporda, performans sorunu olduğundan şüphelenilen bir zaman aralığı seçebilir ve ardından Zaman Çizelgesi ayrıntıları görünümünde (alt bölme) ayrıntılı ui iş parçacığı etkinliklerini inceleyebilirsiniz.
Zaman çizelgesi ayrıntıları görünümünde etkinliğin türü (veya dahil olan kullanıcı arabirimi öğesi) gibi bilgileri ve etkinliğin süresini bulabilirsiniz. Örneğin, çizimde Kılavuz denetimi için düzen olayı 57,53 ms sürer.
Daha fazla bilgi için bkz . Uygulama Zaman Çizelgesi.
Kullanıcı arabirimi performansını ve erişilebilirlik olaylarını (UWP) inceleme
UWP uygulamalarınızda Tanılama Araçları penceresinde kullanıcı arabirimi analizini etkinleştirebilirsiniz. Araç, sık karşılaşılan performans veya erişilebilirlik sorunlarını arar ve bunları hata ayıklarken Olaylar görünümünde görüntüler. Olay açıklamaları, sorunları çözmeye yardımcı olabilecek bilgiler sağlar.
GPU Kullanımını Analiz Etme (Direct3D)
Direct3D uygulamalarında (Direct3D bileşenleri C++'da olmalıdır), GPU'daki etkinliği inceleyebilir ve performans sorunlarını analiz edebilirsiniz. Daha fazla bilgi için bkz . GPU Kullanımı. Aracı kullanmak için Performans Profili Oluşturucu'da GPU Kullanımı'nı ve ardından Başlat'ı seçin. Uygulamanızda, profil oluşturmayla ilgilendiğiniz senaryoyu gözden geçirin ve ardından raporu oluşturmak için Koleksiyonu durdur'u seçin.
Grafiklerde bir zaman aralığı seçip ayrıntıları görüntüle'yi seçtiğinizde, alt bölmede ayrıntılı bir görünüm görüntülenir. Ayrıntılı görünümde, her CPU ve GPU'da ne kadar etkinlik olduğunu inceleyebilirsiniz. Zaman çizelgesinde açılan pencereleri almak için en düşük bölmedeki olayları seçin. Örneğin, Sun olayını seçerek Arama sun açılır pencerelerini görüntüleyin. (Açık gri dikey VSync çizgileri, belirli birVSync çağrıları yanıtsız. Uygulamanın sürekli olarak 60 FPS'ye çarpması için her iki VSync arasında bir Present çağrısı olmalıdır.)
Cpu bağlı mı yoksa GPU'ya bağlı performans sorunları mı olduğunu belirlemek için grafikleri de kullanabilirsiniz.
Performansı analiz etme (eski araçlar)
Visual Studio 2019'da, eski Performans Gezgini ve Performans Sihirbazı gibi ilgili profil oluşturma araçları Performans Profili Oluşturucu'ya katlandı. Bu araçları Hata Ayıklama>Performans Profili Oluşturucu'yu kullanarak açabilirsiniz. Performans Profili Oluşturucu'da, kullanılabilir tanılama araçları seçilen hedefe ve geçerli açık başlangıç projesine bağlıdır. CPU Kullanımı aracı, daha önce Performans Sihirbazı'nda desteklenen örnekleme özelliğini sağlar. İzleme aracı, Performans Sihirbazı'nda bulunan izlemeli profil oluşturma özelliğini (kesin çağrı sayıları ve süreleri için) sağlar. Performans Profili Oluşturucu'da ek bellek araçları da görüntülenir.