Aracılığıyla paylaş


Davranmayan çok iş parçacıklı uygulamalar için ortak desenleri

Eşzamanlılık görselleştiricisi çok iş parçacıklı uygulamaların davranışını görselleştirmek aiçin geliştiricile yardımcı olur.Bu araç hatalı davranılmışa çok iş parçacıklı uygulamalar için ortak desenler galerisi içerir.Galeri, araca maruz kalmış tipik ve tanınabilir desenler içerir. Her desen tarafından temsil edilen davranışın açıklaması da bulunur. Davranışın olası ve en çok görülen sonucu bunu çözmektir.

Kilit Çakışması ve Serileştirilmiş Yürütme

Serileştirilmiş yürütme sonucu veren Kilit Uyuşmazlığı

Bazen bir paralel hale getirilmiş uygulama, bir çok iş parçacığına sahip olsa da ve bilgisayar yeterli sayıda mantıksal çekirdeğe sahip olsa dahi inatla seri bir şekilde yürütmeye devam eder.İlk belirti, kötü çok iş parçacıklı performansıdır , hatta belki de seri uygulamasına göre biraz daha yavaş olabilir.İş Parçacıkları Görünümü'nde birden çok iş parçacığını paralel olarak çalışırken görmezsiniz; Bunun yerine, her an yalnızca bir iş parçacığının çalıştığını görürsünüz.Bu noktada, bir iş parçacığında eşitleme bölmesine tıklarsanız, engellenen iş parçacığı (engelleme çağrı yığını) için bir çağrı yığınını ve durdurma koşulunu (engellemeyi kaldırma çağrı yığını) kaldırılan iş parçacığını görebilirsiniz.Buna ek olarak, engellemeyi kaldırma çağrı yığını analiz işleminde ortaya çıkarsa, iş parçacığı için hazır bir bağlayıcı görüntülenir.Bu noktadan itibaren, kodunuzu, serileştirmenin nedenini daha fazla incelemek adına engelleme ve engellemeyi kaldırma çağrı yığınlarından yönlendirebilirsiniz.

Aşağıdaki çizimde gösterildiği gibi, Eşzamanlılık Görselleştiricisi, birden çok iş parçacığının varlığına rağmen, CPU kullanımındaki belirtileri ifşa edebilir. Uygulama yalnızca tek mantıksal çekirdek kullanır.

Daha fazla bilgi için bkz: "Performans desen 1: tanımlayan Kilit çakışması" Hazim Shafi'ler de Paralel performans Tools For Windows Web Sitesinde MSDN Bloğu

Kilit çakışması

Eşit Olmayan Iş Yükü Dağılımı

Düzensiz iş yükü

Bir uygulamadaki paralel birkaç iş parçacığı üzerinde düzensiz bir çalışma dağılım ortaya çıktığında, önceki şekilde gösterildiği gibi her iş parçacığı, çalışmasını tamamlandığında tipik bir basamak adımı deseni görünür. Eşzamanlılık Görselleştiricisi çoğunlukla her eş zamanlı iş parçacığı için çok yakın başlangıç saatleri gösterir.Ancak, genel olarak bu iş parçacıklarını eşzamanlı olarak bitmek yerine düzensiz bir şekilde biter.Bu desen, düşük performansa neden olabilecek, paralel iş parçacık grupları arasında düzensiz bir çalışma dağılımını işaret eder.Böyle bir sorun için en iyi yaklaşım, paralel iş parçacıkları arasında bölünmüş algoritmayı yeniden değerlendirmektir..

Aşağıdaki çizimde gösterildiği gibi, Eşzamanlılık Görselleştiricisi bu belirtileri, CPU Kullanım Görünümünde, CPU kullanımında kademeli bir azalma olarak da gösterebilir.

Düzensiz iş yükü

Aşırı Talep

Aşırı talep

Aşırı talep söz konusu olduğunda, bir işlemdeki etkin iş parçacığı sayısı sistemde kullanılabilen mantıksal çekirdek sayısından daha büyüktür.Önceki resimde ,tüm etkin iş parçacıkları içindeki önemli önalım hakkı şeritleriyle birlikte, aşırı talebin sonuçlarını gösterir.Buna ek olarak, gösterge ön alım içinde harcanan zamanının büyük bir yüzdesini gösterir. (Bu örnekte yüzde 84)Bu, işlemin sistemden mantıksal çekirdek sayısından daha fazla eşzamanlı iş parçacığını çalıştırmasını istemesini gösterebilir.Ancak bu durum, bu işlem için kullanılabilir olarak varsayılan kaynakların başka işlemler tarafından kullanıldığını da gösterebilir.

Bu sorunu değerlendirirken aşağıdakileri de gözönünde bulundurmalısınız:

  • Tüm sistem aşırı talebe maruz kalmış olabilir..Iş parçacıklarını sistemdeki diğer işlemlerin ön alım gerçekleştirmiş olabileceğini göz önünde bulundurun.İş parçacığı görünümünde ön alım segmentinden sonra duraklattığınızda, ipucu aracı iş parçacıklarını ve iş parçacıklarına ön alım gerçekleştirmiş işlemleri tanımlayacaktır.Bu işlem, işleminize ön alım gerçekleştirildiği tüm zamanda çalıştırılan olmak zorunda değildir. Ancak işleminize karşı neyin ön alım baskısı gerçekleştirdiği hakkında ipucu sağlar.

  • Çalışmanın bu aşamasında işleminizin uygun iş parçacığı sayısını nasıl belirleyeceğini değerlendirin.Eğer işleminizin paralel etkin iş parçacıkları sayısını doğrudan hesaplıyorsar, bu algoritmayı sistemdeki mantıksal çekirdek sayısını daha iyi hesaba katan bir algoritmayla değiştirmeyi düşünün.Eğe Eşzamanlılık Çalışma Zamanı kullanıyorsanız, Görev Paralellilk Kitaplığı veya PLINQ iş parçacığı sayısını hesaplama görevini gerçekleştircektir.

Verimsiz bir G/Ç

Yetersiz g/ç

Aşırı kullanımı veya G/Ç yanlış kullanımı uygulamalardaki verimsizliğinin yaygın sebebidir.Önceki açıklamayı göz önünde bulundurun.Görünür Zaman Çizelgesi Profili, görünen iş parçacıklarının yüzde 42 oranında G/Ç tarafından tüketildiğini gösterir.Zaman Çizelgesi çok sayıda G/Ç gösterir. Bu da ayrımlanmış uygulamaların G/Ç tarafından sık sık bloke edildiğine işaret eder.G/Ç türleri hakkında detaylar ve programınız nerede engellendiğini görmek için sorunlu bölgelere yakınlaşın, Görünür Zaman Çizelgesi Profili'ni inceleyin ve mevcut çağrı yığınlarını engellemek için belirli bir G/Ç'ye tıklayın. .

Kilit Konvoyları

Kilit Konvoyları

Kilit konvoyları, uygulama ilk gelen ilk hizmet alırda kitit edinirse ve kilitteki varış hızı edinme hızından yüksek olduğunda oluşur.Bu iki koşulun birleşimi yedekleme başlatmayı kilitleme için isteğe neden olur.Bu sorunla mücadele etmek için bir yol "adil olmayan" kilitleri veya ilk iş parçacığına kilitsiz bölgelerde bulmak için erişim izni veren kilitleri kullanmaktır.Önceki açıklama bu konvoy davranışını gösteriyor.Sorunu çözmek için, eşitleme nesneleri için çekişmeyi azaltmayı ve adil olmayan kilitleri kullanmayı deneyin.

Ayrıca bkz.

Kavramlar

İş parçacığı View (paralel performans)