Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 3240|Yanıt: 2

[Kaynak] PLINQ paralel sorgu kullanarak .NET/C# performans optimizasyonu

[Bağlantıyı kopyala]
Yayınlandı 2.03.2024 17:30:49 | | | |
Paralel sorgu nedir?

PLINQ sorgusunun birçok yönü, paralel olmayan LINQ to Object sorgularına benzer. Sıralı LINQ sorguları gibi, PLINQ sorguları da herhangi bir bellek içi IEnumerable veya IEnumerable<T> veri kaynağında işlem yapar ve yürütmeyi erteler; yani sorgu listelenene kadar yürütülmeye başlamazlar. Ana fark, PLINQ'nin sisteminizdeki tüm işlemcilerden en iyi şekilde yararlanmaya çalışması. Yöntem, veri kaynağını parçalara ayırmak ve ardından ayrı bir işçi iş parçacığında her parça için birden fazla işlemci üzerinde paralel sorgular yapmaktır. Birçok durumda, paralel yürütme sorguların önemli ölçüde daha hızlı çalışmasını sağlar.

Paralel yürütme ile PLINQ, genellikle AsParallel sorgu işlemlerini veri kaynağına eklemek için eski kodlara kıyasla performansı önemli ölçüde artırabilir. Ancak, paralellik kendi karmaşıklığını getirebilir, bu yüzden PLINQ'da tüm sorgu işlemleri daha hızlı çalışmaz. Aslında, paralellik bazı soruları yavaşlatıyor. Bu nedenle, sıralama gibi konuların paralel sorguları nasıl etkileyeceğini anlamak önemlidir. Daha fazla bilgi için bkz. PLINQ'da ivmeni anlamak.

Basit bir örnek

Koleksiyondaki 10.000 veri parçası için kod şöyledir:



PLINQ tarafından kullanılan diğer özellikler

1. AsSequential kullanarak, süreçte paralel sorgular kullanmak istemiyorsanız, bu özelliği kullanarak ardışık sorgulara geri dönebilirsiniz.


2. AsOrdered kullanıldığında, PLINQ paralel çalıştığı için sonuçlar sırayla olmayabilir ve AsOrdered yöntemi ekleyerek sorgulanabilir.


3. Paralellik Derecesi ile kullanın, bu özellik bilgisayarda paralel CUP sayısını ayarlayabilir.


Sahne notu

Birçok durumda, sorgular paralelleştirilebilir, ancak paralel sorgu kurmanın yükü performans kazanımlarından daha ağır basabilir.Eğer sorgu çok sayıda hesaplama yapmıyorsa veya veri kaynağı küçükse, PLINQ sorgusu ardışık LINQ'dan Nesnelere sorgudan daha yavaş olabilir。 Visual Studio Team Server'daki Paralel Performans Analizörü'nü kullanarak çeşitli sorguların performansını karşılaştırabilir, işlem darboğazlarını bulabilir ve sorguların paralel mi yoksa ardışık mı çalıştığını belirleyebilirsiniz.

Referans:Bağlantı girişi görünür.





Önceki:【Practical Combat】OpenWrt installation of luci-app plugin tutorial
Önümüzdeki:SQL Server, deadlock sorunlarını takip etmek için genişletilmiş olaylar kullanır
 Ev sahibi| Yayınlandı 20.03.2024 22:29:27 |
HuairongChen 2024-3-20 16:05 tarihinde yayınlandı
Paralelliği kullanarak performansı iki katına çıkarmak için eşzamanlı paralellik yaptım, ancak verinin paralel işleme sorununa da dikkat etmem gerekiyor...

Öğe+=1 koydunuz; Daha belirgin kontrast için thread.sleep(100) ile değiştirin
Yayınlandı 20.03.2024 16:05:24 |


Paralel kullanarak senkron paralellik ile performansı iki katına çıkardım, ancak aynı zamanda verinin paralel işleme sorununa da dikkat etmem gerekiyor
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com