Kas ir paralēlais vaicājums?
Daudzi PLINQ vaicājuma aspekti ir līdzīgi neparalēliem LINQ vaicājumiem ar objektiem. Tāpat kā secīgie LINQ vaicājumi, PLINQ vaicājumi veic darbības ar jebkuru atmiņā esošo IEnumerable vai IEnumerable<T> datu avotu un atliek izpildi, t.i., tie nesāk izpildīt, kamēr vaicājums nav uzskaitīts. Galvenā atšķirība ir tā, ka PLINQ cenšas maksimāli izmantot visus jūsu sistēmas procesorus. Metode ir sadalīt datu avotu fragmentos un pēc tam veikt paralēlus vaicājumus vairākiem procesoriem katram fragmentam atsevišķā darba pavedienā. Daudzos gadījumos paralēlā izpilde nozīmē, ka vaicājumi darbojas ievērojami ātrāk.
Izmantojot paralēlo izpildi, PLINQ var ievērojami uzlabot veiktspēju (salīdzinot ar vecāku kodu noteiktiem vaicājumu veidiem), bieži vien vienkārši pievienojot datu avotam AsParallel vaicājumu operācijas. Tomēr paralēlisms var radīt savu sarežģītību, tāpēc ne visas vaicājumu operācijas PLINQ darbojas ātrāk. Patiesībā paralēlisms faktiski palēnina dažus vaicājumus. Tāpēc ir svarīgi saprast, kā tādi jautājumi kā kārtošana ietekmēs paralēlos vaicājumus. Papildinformāciju skatiet sadaļā Izpratne par paātrinājumu programmā PLINQ.
Vienkāršs piemērs
10 000 datu vienībām kolekcijā kods ir šāds:
Citas PLINQ izmantotās funkcijas
1. Izmantojot AsSequential, ja nevēlaties šajā procesā izmantot paralēlus vaicājumus, varat izmantot šo funkciju, lai atjaunotu secīgus vaicājumus.
2. Izmantojot AsOrdered, tā kā PLINQ darbojas paralēli, rezultāti var nebūt kārtībā, ko var vaicāt, pievienojot metodi AsOrder.
3. Izmantojiet WithDegreeOfParallelism, šī īpašība var iestatīt CUP skaitu paralēli datorā.
Ainas piezīme
Daudzos gadījumos vaicājumus var paralēlizēt, bet paralēlo vaicājumu iestatīšanas pieskaitāmās izmaksas var atsvērt veiktspējas pieaugumu.Ja vaicājums neveic lielu skaitu aprēķinu vai ja datu avots ir mazs, PLINQ vaicājums var būt lēnāks nekā secīgs vaicājums LINQ uz objektiem。 Varat izmantot paralēlās veiktspējas analizatoru Visual Studio Team Server, lai salīdzinātu dažādu vaicājumu veiktspēju, atrastu apstrādes vājās vietas un noteiktu, vai vaicājumi tiek izpildīti paralēli vai secīgi.
Atsauce:Hipersaites pieteikšanās ir redzama.
|