See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 3240|Vastuse: 2

[Allikas] .NET/C# jõudluse optimeerimine PLINQ paralleelse päringu abil

[Kopeeri link]
Postitatud 02.03.2024 17:30:49 | | | |
Mis on paralleelpäring?

Paljud PLINQ päringu aspektid on sarnased mitteparalleelsete LINQ to Objects päringutega. Nagu järjestikused LINQ päringud, teostavad PLINQ päringud toiminguid igale mälus olevale IEnumerable või IEnumerable<T> andmeallikale ja lükkavad täitmise edasi, st nad ei hakka täitma enne, kui päring on loendatud. Peamine erinevus on see, et PLINQ püüab maksimaalselt ära kasutada kõiki sinu süsteemi protsessoreid. Meetod on jagada andmeallikas fragmentideks ja seejärel teha paralleelsed päringud mitmel protsessoril iga fragmendi jaoks eraldi töötajalõimes. Paljudel juhtudel tähendab paralleelne täitmine, et päringud töötavad oluliselt kiiremini.

Paralleelse täitmisega võib PLINQ oluliselt parandada jõudlust (võrreldes vanema koodiga teatud tüüpi päringute puhul), sageli lihtsalt AsParallel päringute lisamise kaudu andmeallikasse. Kuid paralleelsus võib tuua kaasa oma keerukuse, mistõttu ei tööta kõik päringuoperatsioonid PLINQ-s kiiremini. Tegelikult aeglustab paralleelsus mõningaid päringuid. Seetõttu on oluline mõista, kuidas sellised küsimused nagu sorteerimine mõjutavad paralleelpäringuid. Lisateabe saamiseks vaata "Kiirenduse mõistmine PLINQ-s".

Lihtne näide

10 000 andmetüki kohta kogus on kood järgmine:



Muud PLINQ kasutatavad funktsioonid

1. AsSequential'i kasutades, kui sa ei soovi protsessis paralleelpäringuid kasutada, saad seda funktsiooni kasutada järjestikuste päringute taastamiseks.


2. AsOrdered kasutamine, kuna PLINQ töötab paralleelselt, ei pruugi tulemused olla järjekorras, mida saab pärida AsOrdered meetodi lisamisega.


3. Kasuta WithDegreeOfParallelism, see omadus võimaldab määrata paralleelsete CUP-ide arvu arvutis.


Stseeni märkus

Paljudel juhtudel saab päringuid paralleelselt seadistada, kuid paralleelpäringute seadistamise lisakoormus võib ületada jõudluse kasvu.Kui päring ei tee suurt arvutust või kui andmeallikas on väike, võib PLINQ päring olla aeglasem kui järjestikune LINQ to Objects päring。 Visual Studio Team Serveri paralleeljõudluse analüsaatori abil saab võrrelda erinevate päringute jõudlust, leida töötlemise kitsaskohti ja määrata, kas päringud toimuvad paralleelselt või järjestikku.

Viide:Hüperlingi sisselogimine on nähtav.





Eelmine:【Practical Combat】OpenWrt installation of luci-app plugin tutorial
Järgmine:SQL Server kasutab pikendatud sündmusi, et jälgida seiskumisprobleeme
 Üürileandja| Postitatud 20.03.2024 22:29:27 |
HuairongChen Postitatud 2024-3-20 16:05
Kasutasin paralleelset funktsiooni, et võimaldada sünkroonset paralleelsust ja kahekordistada jõudlust, kuid pean pöörama tähelepanu ka andmete paralleelse töötlemise probleemile...

Sa panid eseme +=1; Asenda see thread.sleep(100)-ga, et kontrast oleks selgem
Postitatud 20.03.2024 16:05:24 |


Kasutasin paralleelset funktsiooni, et võimaldada sünkroonset paralleelsust ja kahekordistada jõudlust, kuid pean ka tähelepanu pöörama andmete paralleelse töötlemise probleemile
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com