Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 3240|Odgovoriti: 2

[Vir] .NET/C# optimizacija zmogljivosti z uporabo PLINQ paralelnega poizvedbanja

[Kopiraj povezavo]
Objavljeno na 2. 03. 2024 17:30:49 | | | |
Kaj je vzporedna poizvedba?

Veliko vidikov PLINQ poizvedbe je podobnih neparalelnim LINQ to Objects poizvedbam. Tako kot zaporedne LINQ poizvedbe tudi PLINQ poizvedbe izvajajo operacije na kateremkoli IEnumerable ali IEnumerable viru podatkov v pomnilniku<T> in odložijo izvajanje, torej se ne začnejo izvajati, dokler poizvedba ni našteta. Glavna razlika je, da PLINQ poskuša izkoristiti vse procesorje na vašem sistemu. Metoda je razdelitev podatkovnega vira na fragmente in nato izvajanje vzporednih poizvedb na več procesorjih za vsak fragment v ločeni delovni niti. V mnogih primerih vzporedno izvajanje pomeni, da poizvedbe tečejo bistveno hitreje.

Pri paralelnem izvajanju lahko PLINQ bistveno izboljša zmogljivost (v primerjavi s starejšo kodo za določene vrste poizvedb), pogosto preprosto z dodajanjem AsParallel poizvedb v podatkovni vir. Vendar pa lahko paralelizem uvede svojo lastno kompleksnost, zato v PLINQ ne potekajo vse poizvedbene operacije hitreje. Pravzaprav vzporednost upočasni nekatere poizvedbe. Zato je pomembno razumeti, kako bodo vprašanja, kot je sortiranje, vplivala na vzporedne poizvedbe. Za več informacij glejte Razumevanje pospeševanja v PLINQ.

Preprost primer

Za 10.000 podatkov v zbirki je koda naslednja:



Druge funkcije, ki jih uporablja PLINQ

1. Z uporabo AsSequential, če ne želite uporabljati vzporednih poizvedb v procesu, lahko to funkcijo uporabite za obnovitev zaporednih poizvedb.


2. Z uporabo AsOrdered, ker PLINQ teče vzporedno, rezultati morda niso v vrstnem redu, kar lahko poizvedujemo z dodajanjem metode AsOrdered.


3. Uporabite WithDegreeOfParallelism, ta lastnost lahko nastavi število CUP vzporedno na računalniku.


Opomba o prizoru

V mnogih primerih je mogoče poizvedbe paralelizirati, vendar lahko stroški vzpostavitve vzporednih poizvedb pretehtajo izboljšave zmogljivosti.Če poizvedba ne izvede velikega števila izračunov ali če je podatkovni vir majhen, je PLINQ poizvedba lahko počasnejša od zaporedne poizvedbe LINQ do objektov。 Uporabite lahko Parallel Performance Analyzer v Visual Studio Team Server za primerjavo zmogljivosti različnih poizvedb, iskanje ozkih grl v obdelavi in ugotavljanje, ali poizvedbe potekajo vzporedno ali zaporedno.

Referenčni:Prijava do hiperpovezave je vidna.





Prejšnji:【Practical Combat】OpenWrt install of luci-app plugin tutorial
Naslednji:SQL Server uporablja razširjene dogodke za sledenje težavam z zastoji
 Najemodajalec| Objavljeno na 20. 03. 2024 22:29:27 |
HuairongChen Objavljeno 2024-3-20 16:05
Uporabil sem Parallel za omogočanje sinhronega paralelizma in podvojitev zmogljivosti, vendar moram biti pozoren tudi na problem vzporedne obdelave podatkov...

Vnesete predmet+=1; Zamenjajte ga z thread.sleep(100) za bolj očiten kontrast
Objavljeno na 20. 03. 2024 16:05:24 |


Uporabil sem Parallel za omogočanje sinhronega paralelizma in podvojitev zmogljivosti, vendar moram biti pozoren tudi na problem vzporednega procesiranja podatkov
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com