Aracılığıyla paylaş


CPU kullanımını analiz ederek uygulama performansını ölçme (C#, Visual Basic, C++, F#)

Hata ayıklayıcıyla tümleşik CPU Kullanımı tanılama aracıyla hata ayıklarken performans sorunlarını bulun. Ayrıca, hata ayıklayıcı eklemeden veya çalışan bir uygulamayı hedefleyerek CPU kullanımını analiz edebilirsiniz. Daha fazla bilgi için bkz. Yayında profil oluşturma araçlarını çalıştırma veya derlemelerde hata ayıklama ve CPU profil oluşturmakullanarak performansı analiz etme.

Hata ayıklayıcı duraklatıldığında, Tanılama Araçları penceresindeki CPU Kullanımı aracı, uygulamanızda yürütülen işlevler hakkında bilgi toplar. Araç, çalışma gerçekleştiren işlevleri listeler ve örnekleme oturumunun belirli segmentlerine odaklanmak için kullanabileceğiniz bir zaman çizelgesi grafiği sağlar.

Önemli

Hata ayıklayıcıyla tümleşik Tanılama Araçları, ASP.NET, ASP.NET Core gibi Visual Studio'da .NET geliştirme ve yerel/C++ geliştirme için desteklenir. İlgili Visual Studio iş yükü gereklidir. Hata ayıklayıcısıyla profil oluşturma araçlarını çalıştırmak için Windows 8 ve üzeri gereklidir (Tanılama Araçlarıpenceresi).

Bu öğreticide şunları yapacaksınız:

  • CPU kullanım verilerini toplama
  • CPU kullanım verilerini analiz etme

1. Adım: CPU kullanım verilerini toplama

  1. Visual Studio'da hata ayıklamak istediğiniz projeyi açın ve uygulamanızda CPU kullanımını incelemek istediğiniz noktada bir kesme noktası ayarlayın.

  2. analiz etmek istediğiniz işlevin veya kod bölgesinin sonunda ikinci bir kesme noktası ayarlayın.

    İki kesme noktası ayarlayarak, veri toplamayı analiz etmek istediğiniz kod bölümleriyle sınırlayabilirsiniz.

  3. Tanılama Araçları penceresi, siz kapatmadığınız sürece otomatik olarak görüntülenir. Pencereyi yeniden açmak için Hata Ayıklama>Windows>Tanılama Araçlarını Gösteröğesine tıklayın.

  4. Araç çubuğundaki Araçları Seç ayarıyla CPU Kullanımı, Bellek Kullanımıveya her ikisini birden görmeyi seçebilirsiniz. Visual Studio Enterprise çalıştırıyorsanız, IntelliTrace'i Araçları>Seçenekleri>IntelliTracebölümünde de etkinleştirebilir veya devre dışı bırakabilirsiniz.

    Tanılama Araçları'nı gösteren ekran görüntüsü.

    Esas olarak CPU kullanımına bakacağız, bu nedenle CPU Kullanımı etkinleştirildiğinden emin olun (varsayılan olarak etkindir).

  5. Hata Ayıklama>Hata Ayıklamayı Başlat üzerine tıklayın (veya araç çubuğunda Başlat veya F5).

    Uygulamanın yüklenmesi tamamlandığında Tanılama Araçları'nın Özet görünümü görüntülenir. Pencereyi açmanız gerekiyorsa Hata Ayıkla>Windows>Tanılama Araçlarını Gösterüzerine tıklayın.

    Tanılama Araçları Özet Sekmesini gösteren ekran görüntüsü .

    Olaylar hakkında daha fazla bilgi için Tanılama Araçları penceresinin Olaylar sekmesinde arama ve filtrelemebölümüne bakın.

  6. İlk kesme noktasının vurulmasına neden olacak senaryoyu çalıştırın.

  7. Hata ayıklayıcı duraklatılırken CPU Kullanımı verilerinin toplanmasını etkinleştirin ve ardından CPU Kullanımı sekmesini açın.

    Tanılama Araçları'nın CPU profili oluşturmayı etkinleştirdiğini gösteren ekran görüntüsü.

    KAYDET CPU Profili'ni seçtiğinizde Visual Studio işlevlerinizi ve bunların yürütülmesinin ne kadar zaman alacağını kaydetmeye başlar. Toplanan bu verileri yalnızca uygulamanız kesme noktasında durdurulduğunda görüntüleyebilirsiniz.

  8. Uygulamayı ikinci kesme noktanıza çalıştırmak için F5 tuşuna basın.

    Şimdi, uygulamanız için özellikle iki kesme noktası arasında çalışan kod bölgesine yönelik performans verileriniz var.

    Profil oluşturucu iş parçacığı verilerini hazırlamaya başlar. Bitmesini bekleyin.

    İş parçacıklarını hazırlayan Tanılama Araçları'nı gösteren ekran görüntüsü.

    CPU Kullanımı aracı, raporu CPU Kullanımı sekmesinde görüntüler.

    Tanılama Araçları CPU Kullanımı Sekmesini gösteren ekran görüntüsü Screenshot that shows Diagnostics Tools CPU Usage Tab.. DiagToolsCPUUsageTabDiagToolsCPUUsageTab

  9. Analiz edilecek daha belirli bir kod bölgesi seçmek istiyorsanız CPU zaman çizelgesinde bir bölge seçin (profil oluşturma verilerini gösteren bir bölge olmalıdır).

    Tanılama Araçları'nın bir zaman dilimi seçmesini gösteren ekran görüntüsü.

    Bu noktada verileri analiz etmeye başlayabilirsiniz. Veri toplama veya görüntüleme konusunda sorun yaşıyorsanız, profil oluşturma hatalarını giderme ve sorunları düzeltme bölümüne bakın vebölümünü inceleyin.

    Bahşiş

    Performans sorunlarını belirlemeye çalışırken birden çok ölçüm yapın. Performans doğal olarak çalıştır-çalıştır arasında değişir ve kod yolları genellikle DLL'leri yükleme, JIT derleme yöntemleri ve önbellekleri başlatma gibi tek seferlik başlatma çalışmalarından dolayı ilk kez çalıştırıldığında daha yavaş yürütülür. Birden çok ölçüm alarak, gösterilen ölçümün aralığı ve ortanca değeri hakkında daha iyi bir fikir edinmiş olursunuz ve bu da ilk kez bir kod alanının kararlı durum performansıyla karşılaştırmanızı sağlar.

2. Adım: CPU kullanım verilerini analiz etme

CPU Kullanımı altındaki işlevlerin listesini inceleyerek, en çok iş yapan işlevleri belirleyerek ve ardından her birine daha yakından bakarak verilerinizi analize başlamanızı öneririz.

  1. İşlev listesinde, en çok iş yapan işlevleri inceleyin.

    Tanılama Araçları CPU Kullanımı İşlev Listesi'nin gösterildiği ekran görüntüsü.

    Bahşiş

    İşlevler, en çok iş yapanlardan başlayarak sırasıyla listelenir (çağrı sırasına göre değildir). Bu, en uzun süre çalışan işlevleri hızla belirlemenize yardımcı olur.

  2. İşlev listesinde, çok fazla iş yapan uygulama işlevlerinizden birine çift tıklayın.

    bir işleve çift tıkladığınızda, İşlevleri görünümü sol bölmede açılır. Açılan menüden Arayan/Aranan görünümünü seçin.

    Tanılama Araçları Çağıranı Arama Görünümünü gösteren ekran görüntüsü.

    Bu görünümde, seçili işlev başlık kısmında ve Geçerli İşlev kutusunda (bu örnekte DoWork) gösterilir. Geçerli işlevi çağıran işlev sol tarafta Çağrılan İşlevleraltında, geçerli işlev tarafından çağrılan tüm işlevler de sağ taraftaki Çağrılan İşlevler kutusunda gösterilir. (Geçerli işlevi değiştirmek için iki kutuyu da seçebilirsiniz.)

    Bu görünümde toplam süre (ms) ve işlevin tamamlanması için geçen genel uygulama çalışma süresinin yüzdesi gösterilir. İşlev Gövdesi, işlev gövdesinde çağrılan ve çağrılan işlevlerde harcanan süre dışında harcanan toplam süreyi (ve zaman yüzdesini) de gösterir.

    Bahşiş

    İşlev Gövdesi yüksek değerler, işlevin kendi içinde bir performans sorunu olduğunu gösterebilir.

  3. Daha üst düzey bir görünüm elde etmek için işlevlerin hangi sırayla çağrıldığını gösteren bölmenin üst kısmındaki açılan listeden Çağrı Ağacı seçeneğini seçin.

    Şekildeki her numaralandırılmış alan, yordamdaki bir adımla ilgilidir.

    Tanılama Araçları Çağrı Ağacı

    Resim Açıklama
    Adım 1 UYGULAMAYı temsil eden CPU Kullanımı çağrı ağacındaki en üst düzey düğüm.
    Adım 2 Çoğu uygulamada, Dış Kodu Göster seçeneği devre dışı bırakıldığında, ikinci düzey düğüm, uygulamayı başlatan ve durduran, kullanıcı arabirimini çizen, iş parçacığı zamanlamasını denetleen ve uygulamaya diğer düşük düzeyli hizmetleri sağlayan sistem ve çerçeve kodunu içeren bir [Dış Kod] düğümüdür.
    Adım 3 İkinci düzey düğümün alt öğeleri, ikinci düzey sistem ve çerçeve kodu tarafından çağrılan veya oluşturulan kullanıcı kodu yöntemleri ve asenkron rutinlerdir.
    Adım 4 Bir yöntemin alt düğümleri yalnızca üst yöntemin çağrıları için veri içerir. Dış Kodu Göster devre dışı bırakıldığında, uygulama yöntemleri bir [Dış Kod] düğümü de içerebilir.

    Sütun değerleri hakkında daha fazla bilgi aşağıdadır:

    • Toplam CPU işlevin ne kadar çalışma yaptığını ve işlevin çağırdığı işlevleri gösterir. Toplam CPU değerlerinin yüksek olması, genel olarak en pahalı işlevlere işaret eder.

    • Self CPU, çağrılan işlevler tarafından yapılan çalışmalar hariç, işlevin gövdesindeki kod tarafından ne kadar iş yapıldığını gösterir. Yüksek Self CPU değerleri işlevin kendi içinde bir performans sorununa işaret edebilir.

    • Modülleri İşlevi içeren modülün adı veya [Dış Kod] düğümündeki işlevleri içeren modüllerin sayısı.

    Çağrı ağacı görünümünde CPU'nun en yüksek yüzdesini kullanan işlev çağrılarını görmek için Sık Erişimli Yolu Genişletöğesine tıklayın. Sık erişimli yol, araştırmanızı en çok etkileyebilecek alana odaklamanıza yardımcı olabilir.

    Tanılama Araçları Sık Erişim Yolunu Gösteren Ekran Görüntüsü.

    Not

    Çağrı ağacında "bozuk" kod veya "izlenemez yığın" olarak işaretlenmiş bir kod görürseniz bu, Windows için Olay İzleme (ETW) olaylarının büyük olasılıkla bırakıldığını gösterir. Sorunu çözmek için aynı izlemeyi ikinci kez toplamayı deneyin.

  1. Verilerin farklı bir görünümünü görmek için bölmenin üst kısmındaki açılan listeden Alev Grafı seçin.

    Alev grafiği, çağrı ağacının farklı bir görselleştirmesini sağlayarak verileri analiz etmenizi sağlar. Daha fazla bilgi için bkz. Alev grafı ile önemli yolları tanımlama.

  2. İşleve veya modüle göre toplanan verilerin görünümlerini görmek için bölmenin üst kısmındaki açılan listeden İşlevler veya Modüller seçeneğini belirleyin.

    Bu görünümler, yüksek çağrı sayıları ve/veya performans sorunlarının bir bileşiminden kaynaklanan performans sorunları olabilecek işlevleri veya modülleri tanımlamaya yardımcı olur.

    Tanılama Araçları İşlevleri görünümünü gösteren ekran görüntüsü.

Dış kodu görüntüleme

Dış kod, yazdığınız kod tarafından yürütülen sistem ve çerçeve bileşenlerindeki işlevlerdir. Dış kod, uygulamayı başlatıp durduran, kullanıcı arabirimini çizen, iş parçacığını denetleten ve uygulamaya diğer düşük düzeyli hizmetler sağlayan işlevleri içerir. Çoğu durumda, harici kodla ilgilenmeyeceksiniz ve bu nedenle CPU Kullanımı aracı bir kullanıcı yöntemindeki harici işlevleri bir [Dış Çağrı] düğümünde olarak toplar.

Dış kodun arama yollarını görüntülemek istiyorsanız, Ayarlar listesinden Yalnızca Kodumu Göster seçimini kaldırın ve ardından Uygulaseçeneğini belirleyin.

ayarlar'ı gösteren ekran görüntüsü , ardından Yalnızca Kodumu Göster'i seçin.

İşlev Adı sütununun genişliğinin en büyük bilgisayar monitörleri dışındaki tüm ekran genişliğini aşabilmesi için birçok dış kod çağrı zincirinin iç içe geçmiş olduğunu unutmayın. Bu durumda işlev adları [...] olarak gösterilir.

Aradığınız düğümü bulmak için arama kutusunu kullanın, ardından yatay kaydırma çubuğunu kullanarak verileri görünüme getirin.

Bahşiş

Windows işlevlerini çağıran dış kodun profilini oluşturursanız, en güncelpdb dosyalarına sahip olduğunuzdan emin olmanız gerekir. Bu dosyalar olmadan rapor görünümleriniz, şifreli ve anlaşılması zor Windows işlev adlarını listeler. İhtiyacınız olan dosyaların sizde olduğundan emin olmak için daha fazla bilgiye şu bağlantıda ulaşabilirsiniz: Hata ayıklayıcıda simge (.pdb) ve kaynak dosyalarını belirtme.

Sonraki adımlar

Bu öğreticide CPU kullanım verilerini toplamayı ve çözümlemeyi öğrendiniz. profilleyicininturunu tamamladıysanız, araçların daha etkili bir şekilde nasıl kullanılacağını gösteren bir eğitimi incelemek isteyebilirsiniz.

Örnek olay incelemesi: Kod iyileştirmeye yönelik başlangıç kılavuzu

Bu öğreticide, hata ayıklama sırasında CPU kullanım verilerini toplamayı ve çözümlemeyi öğrendiniz. Performans Profili Oluşturucu kullanarak sürüm derlemelerinin profilini oluşturma hakkında daha fazla bilgi edinmek isteyebilirsiniz.

Performans Profili CPU kullanımını analiz etme