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.
|