Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 3240|Válasz: 2

[Forrás] .NET/C# teljesítményoptimalizálás PLINQ párhuzamos lekérdezéssel

[Linket másol]
Közzétéve 2024. 03. 02. 17:30:49 | | | |
Mi az a párhuzamos lekérdezés?

A PLINQ lekérdezés számos aspektusa hasonló a nem párhuzamos LINQ to Objects lekérdezésekhez. Akárcsak a szekvenciális LINQ lekérdezések, a PLINQ lekérdezések is végrehajtanak műveleteket bármely memóriában található IEnumerable vagy IEnumerable<T> adatforráson, és elhalasztják a végrehajtást, azaz csak akkor kezdenek el a végrehajtás, amikor a lekérdezés elsorolódik. A fő különbség, hogy a PLINQ igyekszik a lehető legjobban kihozni a rendszered összes processzorát. A módszer az, hogy az adatforrást fragmentumokra osztják, majd párhuzamos lekérdezéseket hajtanak végre több processzoron minden egyes fragmentumhoz egy külön munkafonalban. Sok esetben a párhuzamos végrehajtás miatt a lekérdezések jelentősen gyorsabban futnak.

Párhuzamos végrehajtással a PLINQ jelentősen javíthatja a teljesítményt (bizonyos típusú lekérdezéseknél a régebbi kódhoz képest), gyakran egyszerűen AsParallel lekérdezési műveletek hozzáadásával az adatforráshoz. Azonban a párhuzamosság saját összetettséget hozhat, így nem minden lekérdezési művelet gyorsabban fut a PLINQ-ben. Valójában a párhuzamosság néhány lekérdezést lelassít. Ezért fontos megérteni, hogyan befolyásolják a sorozás kérdései a párhuzamos lekérdezéseket. További információért lásd: A PLINQ gyorsulásának megértése.

Egyszerű példa

A gyűjteményben található 10 000 adatdarabra a kód a következő:



Egyéb PLINQ által használt funkciók

1. Az AsSequential használatával, ha nem szeretnél párhuzamos lekérdezéseket használni a folyamat során, ezt a funkciót használhatod a szekvenciális lekérdezések visszaállítására.


2. Az AsOrdered használatával, mivel a PLINQ párhuzamosan fut, az eredmények nem biztos, hogy sorrendben, amit az AsOrdered metódus hozzáadásával lehet lekérdezni.


3. A WithDegreeOfParallelism használata lehetővé teszi a számítógépen párhuzamosan lévő CUP-ok számát.


Jelenet megjegyzés

Sok esetben a lekérdezések párhuzamosak lehetnek, de a párhuzamos lekérdezések beállításának többletterhelése meghaladhatja a teljesítménynövekedést.Ha a lekérdezés nem végez sok számítást, vagy ha az adatforrás kicsi, a PLINQ lekérdezés lassabb lehet, mint egy sorozatos LINQ to Objects lekérdezés。 A Visual Studio Team Server Parallel Performance Analyzer-ét használhatod a különböző lekérdezések teljesítményének összehasonlítására, feldolgozási szűk keresztmetszetekre és annak megállapítására, hogy a lekérdezések párhuzamosan vagy egymás után futnak-e.

Utalás:A hiperlink bejelentkezés látható.





Előző:【Practical Combat】OpenWrt installation of luci-app plugin tutorial
Következő:Az SQL Server kiterjesztett eseményeket használ a holthelyzeti problémák nyomon követésére
 Háziúr| Közzétéve 2024. 03. 20. 22:29:27 |
HuairongChen Közzétéve: 2024-03-20, 16:05
A párhuzamos rendszert használtam a szinkron párhuzamosság megduplázásához a teljesítmény megduplázására, de figyelnem kell az adatok párhuzamos feldolgozásának problémájára is...

Te írsz bele tételt+=1; Cseréld le thread.sleep(100)-ra, hogy jobban feltűnő kontrasztot kapj
Közzétéve 2024. 03. 20. 16:05:24 |


A párhuzamos rendszert használtam a szinkron párhuzamosság megduplázásához a teljesítmény megduplázásához, de figyelnem kell az adatok párhuzamos feldolgozásának problémájára is
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com