Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 3240|Atbildi: 2

[Avots] .NET/C# veiktspējas optimizācija, izmantojot PLINQ paralēlo vaicājumu

[Kopēt saiti]
Publicēts 02.03.2024 17:30:49 | | | |
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.





Iepriekšējo:【Praktiskā cīņa】 OpenWrt luci-app spraudņa instalēšanas apmācība
Nākamo:SQL Server izmanto paplašinātos notikumus, lai izsekotu strupceļa problēmas
 Saimnieks| Publicēts 20.03.2024 22:29:27 |
HuairongChen Publicēts 2024-3-20 16:05
Es izmantoju paralēli, lai iespējotu sinhronu paralēlismu, lai dubultotu veiktspēju, bet man ir jāpievērš uzmanība arī datu paralēlās apstrādes problēmai...

Jūs ievietojat vienumu+=1; Aizstājiet to ar thread.sleep(100), lai iegūtu acīmredzamāku kontrastu
Publicēts 20.03.2024 16:05:24 |


Es izmantoju paralēli, lai iespējotu sinhronu paralēlismu, lai dubultotu veiktspēju, bet man ir jāpievērš uzmanība arī datu paralēlās apstrādes problēmai
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com