Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uygulamanızdaki performans sorunlarını araştırmaya başlamanın iyi bir yolu, CPU profil oluşturucu kullanarak CPU kullanımını anlamaktır. Visual Studio'nun CPU Kullanımı performans aracı, C++, C#/Visual Basic'te kod yürütülürken harcanan CPU etkin hesaplama süresini ve harcanan yüzdeyi gösterir.
CPU Kullanımı aracı size yardımcı olabilir:
Ekibinizin kod tabanında bir yavaşlığı veya işlemin duraklamasını tanılayın. Araç, ekibinizin üretim koduyla ilgili sorunu tanılamanıza yardımcı olabilir. Performans sorunlarını analiz edip tanılayabilmek için otomatik içgörüler ve verilerinizin çeşitli görünümlerini sağlar.
DevOps senaryolarındaki performans sorunlarını belirleme Örneğin, bir müşteri yoğun sezonda bazı istek veya siparişlerin perakende web sitesine geçmediğini bildirdiğinde araç yardımcı olabilir. Sorunlar genellikle üretim aşamasındadır ve o anda hata ayıklamak zordur, ancak bu araç sorunla ilgili yeterli bilgi ve kanıt yakalamanıza yardımcı olabilir. Bir izleme dosyası topladıktan sonra analiz, olası nedenleri anlamanıza ve kodunuzun bağlamında önerilerde bulunarak sorunu çözmek için sonraki adımları izlemenize yardımcı olabilir.
Yüksek CPU kullanımını denetleyin Gecikme sorununuz bir API isteği içinde değilse, CPU Kullanımı aracıyla ilgili yüksek CPU kullanımı ve diğer ilgili sorunları de kontrol edebilirsiniz. CPU Kullanımı aracı, performans sorunlarını belirlemenize yardımcı olabilir, böylece iyileştireceğiniz yeri daraltabilirsiniz.
CPU Kullanımı aracı hem yerel izleme oturumları hem de üretim için yararlıdır. CPU Kullanımı aracını, klavye kısayolu Alt+F2 kullanarak ve ardından CPU Kullanımı seçeneğini seçerek ya da dotnet-trace veya dotnet-monitor gibi bir araçla önceden toplanmış bir izleme dosyasını açarak çalıştırabilirsiniz. (.NET üretim kodu için büyük olasılıkla izlemeleri bu şekilde toplayabilirsiniz.)
CPU Kullanımı aracını açık bir Visual Studio projesinde, yüklü bir Microsoft Store uygulamasında veya çalışan bir uygulama veya işleme iliştirilmiş olarak çalıştırabilirsiniz. Sürümde CPU Kullanımı aracını çalıştırabilir veya derlemelerde hata ayıklayabilirsiniz. Daha fazla bilgi için bkz. Yayın veya hata ayıklama derlemelerinde profil oluşturma araçlarını çalıştırma.
Aşağıdaki yönergelerde, Visual Studio Performans Profil Oluşturucu'yu kullanarak hata ayıklayıcı olmadan CPU Kullanımı aracının nasıl kullanılacağı gösterilmektedir. Örneklerde yerel makinede Release yapı kullanılır. Sürüm derlemeleri gerçek uygulama performansının en iyi görünümünü sağlar. CPU Kullanımı aracını kullanarak performansı geliştirmeyi gösteren bir öğretici için bkz. Örnek olay incelemesi: Kodiyileştirmeye yönelik başlangıç kılavuzu.
Genellikle, yerel makine yüklü uygulamanın çalışmasını en iyi şekilde taklit eder. Uzak bir cihazdan veri toplamak için uygulamayı Uzak Masaüstü Bağlantısı üzerinden değil doğrudan cihazda çalıştırın.
CPU kullanım verilerini toplama
Visual Studio projesinde çözüm yapılandırmasını Yayın olarak ayarlayın ve dağıtım hedefini seçin.
Dağıtım hedefi genellikle yerel dağıtımı gösteren proje adıyla eşleşir.
Hata ayıklama >Performans Profilerseçin.
Esnek sekmesinde CPU Kullanımı'nı seçin. Ardından Başlat'ı seçin.
-
Kullanılabilir araçlaraltında CPU Kullanımı'i seçin ve ardından Başlat'i seçin.
Profil oluşturucuyu başlatmadan önce Koleksiyon duraklatılmış olarak başlat seçeneğini etkinleştirirseniz, tanılama oturumu ekranında Kaydet düğmesini seçene kadar veriler toplanmaz.
Not
CMake gibi bazı proje türleri için başlangıç hedefini Yürütülebilir olarak ayarlamanız gerekir. Daha fazla bilgi için bkz . Projem için hangi araçlar destekleniyor?. Aracı daha verimli hale getirme hakkında daha fazla bilgi için bkz. Profil Oluşturucu ayarlarını iyileştirme.
Uygulama başlatıldıktan sonra tanılama oturumu başlar ve CPU kullanım verilerini görüntüler. Veri toplamayı bitirdiğinizde, Toplamayı Durduröğesini seçin.
CPU Kullanımı aracı verileri analiz eder ve raporu görüntüler. Veri toplama veya görüntüleme konusunda sorun yaşıyorsanız, Profil oluşturma hatalarını giderme ve sorunları düzeltmebölümüne bakın.
CPU Kullanımı raporunu gösteren ekran görüntüsü. CPU Kullanımı raporuCPU Usage report
CPU Kullanımı raporunu gösteren ekran görüntüsü. CPU Kullanımı raporuCPU Usage reportGörüntülenecek konuları seçmek veya seçimini kaldırmak için Filtre açılır listesini kullanın ve Arama kutusunu kullanarak belirli bir konu veya düğümü arayın.
CPU kullanımı veri sütunları
| Ad | Açıklama |
|---|---|
| Toplam CPU [birim, %] |
Cpu hesaplama süresinin milisaniyesi ve işlev çağrıları tarafından kullanılan CPU yüzdesi ve seçilen zaman aralığında işlev tarafından çağrılan işlevler. Bu, bir zaman aralığındaki toplam CPU etkinliğini kullanılabilir toplam CPU ile karşılaştıran CPU Kullanımı zaman çizelgesi grafiğinden farklıdır. |
| Self CPU [birim, %] |
CPU hesaplama süresinin milisaniyesi ve işlev tarafından çağrılan işlevler hariç olmak üzere seçilen zaman aralığında işleve yapılan çağrılar tarafından kullanılan CPU yüzdesi. |
| Modülü | Bazı görünümlerde, işlevi içeren modülün adını gösteren Modül sütunu gösterilir. |
CPU içgörülerini analiz etme
En İyi İçgörüler bölümünde herhangi bir içgörü görünürse, belirtilen sorun hakkında daha fazla bilgi edinmek için sağlanan bağlantıyı kullanın. Buna ek olarak, Copilot kullanıyorsanız Copilot'a sor düğmesi Copilot sohbet penceresini açar ve Copilot kodunuz ve tanımlanan sorunlara göre öneriler sağlar.
Daha fazla bilgi için bkz. CPU içgörüleri.
CPU kullanımını analiz etme
CPU Kullanımı raporunun ayrıntılı analizi için önce ayrıntılı rapor görünümlerinden birini açın:
Raporun özet sayfasında Ayrıntıları aç'a tıklayın veya İşlevler görünümünü açmak için en önemli işlevlerden birini seçin.
Geçerli Görünüm listesinden ayrıntılı rapor görünümlerinden birini seçebilirsiniz.
Aşağıdaki tabloda ayrıntılı görünümlerin bir açıklaması sağlanmaktadır.
| Görüntüle | Açıklama |
|---|---|
| Arayan/Aranan | Belirli bir işlev için CPU süresinin, bu işlevi çağıran işlevlerin ve bu işlevin çağırdığı işlevlerin ayrıntılı incelemesi. Performans verileri, veri toplama dönemi için toplanır. Çağrı yolunu takip etmek için çağıran işlevleri ve çağrılan işlevleri seçebilirsiniz. |
| Çağrı ağacı | İşlev çağrı yolunun hiyerarşik görünümü. En çok CPU süresini alan çağrı yollarını (sık erişimli yol) tanımlamak için kullanılır. |
| Modül | Tek tek modüllerde harcanan ve veri toplama süresi boyunca toplanan CPU zamanının görünümü. Yüksek çağrı sayısı ve/veya performans sorunlarının birleşiminden kaynaklanan performans sorunları olabilecek modülleri tanımlamak için kullanılır. |
| Işlev | Tek tek işlevlerde harcanan ve veri toplama süresi boyunca toplanan CPU zamanının görünümü. Yüksek çağrı sayısı ve/veya performans sorunlarının birleşiminden kaynaklanan performans sorunları olabilecek işlevleri tanımlamak için kullanılır. |
| Alev grafiği | Alev grafiği görselleştirmesinde işlev çağrı yolunun hiyerarşik görünümü. En çok CPU süresini alan çağrı yollarını (sık erişimli yol) tanımlamak için kullanılır. |
CPU Kullanımı raporunun ayrıntılı analizi için önce ayrıntılı rapor görünümlerinden birini açın:
Raporun özet sayfasında Ayrıntıları aç'a tıklayın veya İşlevler görünümünü açmak için en önemli işlevlerden birini seçin.
Geçerli Görünüm listesinden ayrıntılı rapor görünümlerinden birini seçebilirsiniz.
Aşağıdaki tabloda ayrıntılı görünümlerin bir açıklaması sağlanmaktadır.
| Görüntüle | Açıklama |
|---|---|
| Arayan/Aranan | Belirli bir işlev için CPU süresinin, bu işlevi çağıran işlevlerin ve bu işlevin çağırdığı işlevlerin ayrıntılı incelemesi. Performans verileri, veri toplama dönemi için toplanır. Çağrı yolunu takip etmek için çağıran işlevleri ve çağrılan işlevleri seçebilirsiniz. |
| Çağrı ağacı | İşlev çağrı yolunun hiyerarşik görünümü. En çok CPU süresini alan çağrı yollarını (sık erişimli yol) tanımlamak için kullanılır. |
| Modül | Tek tek modüllerde harcanan ve veri toplama süresi boyunca toplanan CPU zamanının görünümü. Yüksek çağrı sayısı ve/veya performans sorunlarının birleşiminden kaynaklanan performans sorunları olabilecek modülleri tanımlamak için kullanılır. |
| Işlev | Tek tek işlevlerde harcanan ve veri toplama süresi boyunca toplanan CPU zamanının görünümü. Yüksek çağrı sayısı ve/veya performans sorunlarının birleşiminden kaynaklanan performans sorunları olabilecek işlevleri tanımlamak için kullanılır. |
| Alev grafiği | Alev grafiği görselleştirmesinde işlev çağrı yolunun hiyerarşik görünümü. En çok CPU süresini alan çağrı yollarını (sık erişimli yol) tanımlamak için kullanılır. |
Arayan/aranan dışındaki tüm görünümlerde, tanılama raporu en yüksekten en düşüğe Toplam CPUgöre sıralanır. Sütun başlıklarını seçerek sıralama düzenini veya sıralama sütununu değiştirin. İlgilendiğiniz bir işleve çift tıklayabilirsiniz ve işlevin kaynağını ve bu işlevde zamanın nereye harcandığını gösteren vurguyu 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. Uç noktalarınızın yavaş olmasının veya kaynak tüketiminin ağır olmasının nedeninin üçüncü taraf kod veya çalışma zamanı kitaplıkları olup olmadığını görmek için yöntemin ne kadar veri görüntülediğini belirleyin.
Alev grafiğini kullanma hakkında daha fazla bilgi için bkz. Flame Graph ile sık erişimli yolları tanımlama.
CPU Kullanımı çağrı ağacı
Çağrı ağacını görüntülemek için rapordaki üst düğümü seçin. Varsayılan olarak, CPU Kullanımı sayfası, Çağıran/Çağrılan görünümünde açılır. Geçerli Görünüm açılan listesinden Arama Ağacıseçin.
Arama 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 tıklayabilir ve Sık Erişimli Yol Göster düğmelerini.
Çağrı ağacı yapısı
| Resim | Açıklama |
|---|---|
|
UYGULAMAYı temsil eden CPU Kullanımı çağrı ağacındaki en üst düzey düğüm. |
|
Çoğu uygulamada Dış Kodu Göster seçeneği devre dışı bırakıldığında, ikinci düzey düğüm bir [Dış Kod] düğümüdür. Düğüm, uygulamayı başlatan ve durduran sistem ve yapı kodunu içerir, kullanıcı arabirimini çizer, iş parçacığı zamanlamasını denetler ve uygulamaya diğer düşük seviyeli hizmetler sağlar. |
|
İ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 zaman uyumsuz yordamlardır. |
|
Bir yöntemin alt düğümleri yalnızca üst yöntemin çağrıları için verilere sahiptir. Dış Kodu Göster devre dışı bırakıldığında, uygulama yöntemleri bir [Dış Kod] düğümü de içerebilir. |
Çağrı ağacındaki beklenmeyen verileri anlama konusunda yardım için bkz. Çağrı ağacını anlama.
Dış kod
Kodunuz tarafından yürütülen sistem ve çerçeve işlevleri, dış kod olarak adlandırılır. Dış kod işlevleri uygulamayı başlatır ve durdurur, kullanıcı arabirimini çizer, iş parçacığını denetler ve uygulamaya diğer alt düzey hizmetleri sağlar. Çoğu durumda dış kodla ilgilenmezsiniz, bu nedenle CPU Kullanımı çağrı ağacı bir kullanıcı yönteminin dış işlevlerini bir [Dış Çağrı] düğümünde toplar.
Dış kodların çağrı yollarını görüntülemek için, ana rapor özet sayfasındaki (sağ bölme) Ayarlar açılır menüsünden Yalnızca Kodumu Göster seçeneğinin işaretini kaldırın ve ardından Uygulaseçeneğini seçin. (Ayarları açılan listesi, ana rapor özet sayfasında bulunur, ayrıntılı görünümlerde değil.)
ayarlar'ı gösteren ekran görüntüsü 
Kodunuz tarafından yürütülen sistem ve çerçeve işlevleri, dış kod olarak adlandırılır. Dış kod işlevleri uygulamayı başlatır ve durdurur, kullanıcı arabirimini çizer, iş parçacığını denetler ve uygulamaya diğer alt düzey hizmetleri sağlar. Çoğu durumda dış kodla ilgilenmezsiniz, bu nedenle CPU Kullanımı çağrı ağacı bir kullanıcı yönteminin dış işlevlerini bir [Dış Çağrı] düğümünde toplar.
Dış kodların çağrı yollarını görüntülemek için, ana rapor özet sayfasındaki (sağ bölme) Ayarlar açılır menüsünden Yalnızca Kodumu Göster seçeneğinin işaretini kaldırın ve ardından Uygulaseçeneğini seçin. (Ayarları açılan listesi, ana rapor özet sayfasında bulunur, ayrıntılı görünümlerde değil.)
ayarlar'ı gösteren ekran görüntüsü 
Yalnızca Kodumu Göster devre dışı bırakdığınızda, CPU Kullanımı sayfasının Çağrı Ağacı görünümü dış kod çağrılarını genişletir.
Birçok dış kod çağrı zinciri iç içe yerleştirilmiş olduğundan, zincirin genişliği İşlev Adı sütununun görüntüleme genişliğini aşabilir. ardından işlev adları aşağıdaki görüntüde gösterildiği gibi görünür.
Yalnızca Kodumu Göster devre dışı bırakdığınızda, CPU Kullanımı sayfasının Çağrı Ağacı görünümü dış kod çağrılarını genişletir.
Birçok dış kod çağrı zinciri iç içe yerleştirilmiş olduğundan, zincirin genişliği İşlev Adı sütununun görüntüleme genişliğini aşabilir. ardından işlev adları aşağıdaki görüntüde gösterildiği gibi görünür.
Aradığınız işlev adını bulmak için arama kutusunu kullanın. Seçili satırın üzerine gelin veya verileri görüntülemek için yatay kaydırma çubuğunu kullanın.
CPU kullanım çağrı ağacındaki zaman uyumsuz işlevler
Derleyici zaman uyumsuz bir yöntemle karşılaştığında, yöntemin yürütülmesini denetlemek için gizli bir sınıf oluşturur. Kavramsal olarak, sınıf bir durum makinesidir. sınıfı, özgün yöntemleri zaman uyumsuz olarak çağıran derleyici tarafından oluşturulan işlevlere ve bunları çalıştırmak için gereken geri çağırmalara, zamanlayıcılara ve yineleyicilere sahiptir. Bir üst yöntem özgün yöntemi çağırdığında, derleyici yöntemini üst öğesinin yürütme bağlamından kaldırır ve gizli sınıf yöntemlerini uygulama yürütmeyi denetleen sistem ve çerçeve kodu bağlamında çalıştırır. Zaman uyumsuz yöntemler genellikle bir veya daha fazla farklı iş parçacığında yürütülür, ancak her zaman değil. Bu kod, CPU Kullanımı çağrı ağacında, ağacın üst düğümünün hemen altındaki [Dış Kod] düğümünün alt öğeleri olarak görünür.
Neler olduğunu göstermek için oluşturulan yöntemleri genişletin:
Çok işlemli performansı analiz etme
Visual Studio 2022 sürüm 17.13'den başlayarak, CPU Kullanımı aracında çok işlemli verileri analiz edebilirsiniz. Bu, .NET Aspire gibi çok işlemli uygulamalar için analiz performansının daha kolay olmasını sağlar. Bu özellik, tek bir oturumdaki işlemler arasında CPU kullanımını ayırt etmenize ve analiz etmenize olanak tanır ve bu da kaynak tüketimi hakkında daha net içgörüler sağlar.
Çok işlemli verileri analiz etmeden önce toplamanız gerekir. Verileri toplamak için Performans Profili Oluşturucu'da CPU Kullanımı aracı için Birden çok işlemden veri topla'yı seçin.
Uygulamanızın CPU kullanımını gösteren zaman çizelgesi grafiği, her işlem için ayrı renk kodlaması içeren performans verilerini görüntüler. Grafikler yığılmış alan grafikleri olarak görüntülenir.
CPU zaman çizelgesi grafiğinin sağ üst tarafında açılan menü kullanarak işlemleri filtreleyebilirsiniz. Bir işlemi seçtiğinizde veya seçimini kaldırdığınızda, profil oluşturucu özet sayfası ve ayrıntılı raporlar yeni seçimlere göre güncelleştirilir ve böylece daha hassas analiz sağlanır.
Çok işlemli performansı analiz etme
Visual Studio 2022 sürüm 17.13'den başlayarak, CPU Kullanımı aracında çok işlemli verileri analiz edebilirsiniz. Bu, .NET Aspire gibi çok işlemli uygulamalar için analiz performansının daha kolay olmasını sağlar. Bu özellik, tek bir oturumdaki işlemler arasında CPU kullanımını ayırt etmenize ve analiz etmenize olanak tanır ve bu da kaynak tüketimi hakkında daha net içgörüler sağlar.
Çok işlemli verileri analiz etmeden önce toplamanız gerekir. Verileri toplamak için Performans Profili Oluşturucu'da CPU Kullanımı aracı için Birden çok işlemden veri topla'yı seçin.
Uygulamanızın CPU kullanımını gösteren zaman çizelgesi grafiği, her işlem için ayrı renk kodlaması içeren performans verilerini görüntüler. Grafikler yığılmış alan grafikleri olarak görüntülenir.
CPU zaman çizelgesi grafiğinin sol üst köşesindeki bir açılan menü kullanarak işlemleri filtreleyebilirsiniz. Bir işlemi seçtiğinizde veya seçimini kaldırdığınızda, profil oluşturucu özet sayfası ve ayrıntılı raporlar yeni seçimlere göre güncelleştirilir ve böylece daha hassas analiz sağlanır.
Arama sayılarını toplama (.NET)
çağrı sayılarını İşlevler görünümünde görüntülemek istiyorsanız, profil oluşturucuyu başlatmadan önce ayarı etkinleştirebilirsiniz. Bu ayar .NET proje türleri için desteklenir ve işlemin profil oluşturucu altında başlatılmasını gerektirir. Ekleme senaryosu desteklenmez.
Performans Profili Oluşturucu'da CPU Kullanımı için Ayarlar simgesini seçin.
Çağrı sayılarını topla (yalnızca.NET) seçeneğini etkinleştirin.
CPU kullanım verilerini toplayın.
İşlevler görünümünü açın ve Arama sayısı sütununun görünür olarak ayarlandığından emin olun.
Sütunu görmüyorsanız, görünür sütunları seçmek için bir sütun başlığına sağ tıklayın.
Arama sayılarını toplama (.NET)
çağrı sayılarını İşlevler görünümünde görüntülemek istiyorsanız, profil oluşturucuyu başlatmadan önce ayarı etkinleştirebilirsiniz. Bu ayar .NET proje türleri için desteklenir ve işlemin profil oluşturucu altında başlatılmasını gerektirir. Ekleme senaryosu desteklenmez.
Performans Profili Oluşturucu'da CPU Kullanımı için Ayarlar simgesini seçin.
Çağrı sayılarını topla (yalnızca.NET) seçeneğini etkinleştirin.
CPU kullanım verilerini toplayın.
İşlevler görünümünü açın ve Arama sayısı sütununun görünür olarak ayarlandığından emin olun.
Sütunu görmüyorsanız, görünür sütunları seçmek için bir sütun başlığına sağ tıklayın.
İlgili içerik
- profil oluşturucu hatalarını giderme
- Flame Graph ile sıcak yolları tanımlama