Aracılığıyla paylaş


İş parçacıkları zaman çizelgesi raporlarını Eşzamanlılık Görselleştiricisi'nde görüntüler

Bu makalede Eşzamanlılık Görselleştiricisi'nin Threads görünümündeki zaman çizelgesi raporları hakkında bilgi verilmektedir.

Yürütme süresi (İş Parçacıkları Görünümü)

İş Parçacıkları Görünümü zaman çizelgesindeki bu kesimler, iş parçacığının sistemdeki bir mantıksal çekirdek üzerinde etkin bir şekilde çalıştığı yürütme süresini temsil eder.

İş parçacığı durumundaki değişiklikler çekirdek bağlam değişikliği olayları aracılığıyla algılanır. Windows için Olay İzleme (ETW), her milisaniyede bir örnek yığınları yakalar. Çok kısa bir yeşil segmentte örnek alınmamış olabilir. Bu nedenle, bazı kısa yürütme kesimleri çağrı yığını göstermeyebilir.

Bir yürütme kesimine tıkladığınızda Eşzamanlılık Görselleştiricisi, tıklamanın konumuna en yakın örnek yığını görüntüler. Bu örnek yığının konumu, zaman çizelgesinin üzerinde siyah bir ok veya şapka işaretiyle gösterilir ve örnek yığın Geçerli sekmesinde görünür.

Geçerli görünümdeki tüm yürütme kesimlerinin geleneksel örnekleme profilini görmek için Görünür Zaman Çizelgesi Profilinde Yürütme'ye tıklayın.

G/Ç zamanı (Parçacık Görünümü)

Zaman çizelgesindeki bu kesimler G/Ç olarak sınıflandırılan engelleme süreleriyle ilişkilendirilir. Bu, bir iş parçacığının G/Ç işleminin tamamlandığını beklediği anlamına gelir. İş parçacığı bir API'de engellenmiş veya Eşzamanlılık Görselleştiricisi'nin G/Ç olarak saydığı G/Ç ile ilgili çekirdek beklemesi nedeniyle engellenmiş olabilir. , ve gibi CreateFile()ReadFile()WSARecv() API'ler bu gruba girer.

Bellek yönetimi süresi

Zaman çizelgesindeki bu kesimler, Bellek Yönetimi olarak kategorilere ayrılmış engelleme süreleriyle ilişkilendirilir. Bu senaryo, bir iş parçacığının Sayfalama gibi bellek yönetimi işlemiyle ilişkili bir olay tarafından engellendiği anlamına gelir. Bu süre boyunca, Eşzamanlılık Görselleştiricisi'nin bellek yönetimi olarak saydığı bir API veya çekirdek durumunda bir iş parçacığı engellendi. Bunlar sayfalama ve bellek ayırma gibi olayları içerir.

Bellek Yönetimi olarak sınıflandırılan blokların temel nedenlerini daha iyi anlamak için ilişkili çağrı yığınlarını ve profil raporlarını inceleyin.

Önceliklendirme süresi

Zaman çizelgesindeki bu kesimler, Öncelik Kaldırma olarak kategorize edilen engelleme süresiyle ilişkilendiriliyor. Bu kategori, aşağıdaki nedenlerden biri nedeniyle bir iş parçacığının değiştirildiğini ifade eder:

  • Zamanlayıcı, daha yüksek öncelikli bir iş parçacığı kullanarak bu iş parçacığını değiştirdi.

  • İş parçacığının yürütme kuantumunun süresi doldu ve diğer iş parçacıkları yürütülmeye hazırdı.

    Bu süre boyunca, Eşzamanlılık Görüntüleyici'nin Askıya Alma olarak saydığı çekirdek bekleme nedeni nedeniyle bir iş parçacığı engellendi. Önalım kesimleri, bir iş parçacığı mantıksal çekirdekten dışarı gönderildiğinde başlar ve bu iş parçacığı yürütmeye devam ettiğinde sona erer.

    Önceden damgalanmış bir segmentin araç ipucu, ön işleme neden olan işlemin veya iş parçacığının adını görüntüler. Ancak bu, devralan işlemin veya iş parçacığının önceden geçen süre boyunca çalıştırıldığını göstermez.

Uyku süresi

Zaman çizelgesindeki bu kesimler, Uyku olarak kategorize edilen engelleme süresiyle ilişkilendirilir. Uyku kategorisi, bir iş parçacığının mantıksal çekirdeğinden gönüllü olarak vazgeçmiş olduğunu ve hiçbir iş yapmadığı anlamına gelir. Bu süre boyunca Eşzamanlılık Görselleştiricisi'nin Uyku olarak saydığı bir API'de bir iş parçacığı engellendi. gibi Sleep()SwitchToThread() API'ler bu gruba girer.

Eşitleme süresi

Zaman çizelgesindeki bu segmentler, Senkronizasyon olarak kategorize edilen engelleme süreleriyle ilişkilidir. Bir iş parçacığı eşitleme üzerinde bloklandı olarak işaretlendiğinde, aşağıdakilerden biri anlaşılır:

  • İş parçacığının yürütülmesi, EnterCriticalSection() veya WaitForSingleObject() gibi iyi bilinen bir iş parçacığı eşitleme API'sine bir çağrı yapılmış olabilir.

  • API eşleştirme algoritması tamamen kapsamlı olamaz, bu nedenle diğer kategorilere eşlenebilen bazı API'ler de senkronizasyon olarak görünebilir çünkü çağrı yığınındaki bir çerçeve eninde sonunda bu kategoriye dahil edilen alttaki bir çekirdek bloklayıcı ilkele ulaşmıştır.

    İş parçacığı engelleme olayının temel nedenini anlamak için engelleme çağrı yığınlarını ve profil analiz raporlarını dikkatlice inceleyin.

Kullanıcı arabirimi işleme süresi

Zaman çizelgesindeki bu segmentler, UI İşleme olarak kategorize edilmiş engelleme zamanlarıyla ilişkilendirilir. Bu, bir iş parçacığının Windows iletilerini pompaladığını veya diğer kullanıcı arabirimi (UI) işlerini gerçekleştirdiğini gösterir. Bu süre boyunca, Eşzamanlılık Görselleştiricisi'nin UI İşleme olarak saydığı bir API'de bir iş parçacığı engellendi. gibi GetMessage()MsgWaitForMultipleObjects() API'ler bu gruba girer.

Önceden tanımlanmış bir engelleme API'si tanımlanmadıysa, gecikmenin temel nedenlerini belirlemek için çağrı yığınlarını ve profil raporlarını gözden geçirin.

UI İşleme kategorisi GUI uygulamalarının yanıt hızını anlamanıza yardımcı olur ve kullanıcı arabirimi yanıt hızına bağlı uygulamalarda tercih edilir. Örneğin, bir uygulamadaki ui iş parçacığı kullanıcı arabirimi işlemede 100% zaman elde ederse, büyük olasılıkla yanıt verir. Ancak, ui iş parçacığı diğer kategorilerde önemli ölçüde zaman harcıyorsa, kök nedenleri arayın ve bu iş parçacığında ui olmayan kategorileri azaltma seçeneklerini göz önünde bulundurun.