Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 3240|Antwort: 2

[Quelle] .NET/C# Leistungsoptimierung mittels PLINQ-Parallelabfrage

[Link kopieren]
Veröffentlicht am 02.03.2024 17:30:49 | | | |
Was ist eine parallele Abfrage?

Viele Aspekte einer PLINQ-Abfrage ähneln nicht-parallelen LINQ-zu-Objekt-Abfragen. Wie sequentielle LINQ-Abfragen führen PLINQ-Abfragen Operationen an jeder IEnumerable- oder IEnumerable-Datenquelle im Speicher aus<T> und verschieben die Ausführung, d. h. sie beginnen erst mit der Ausführung, wenn die Abfrage aufgezählt ist. Der Hauptunterschied ist, dass PLINQ versucht, das Beste aus allen Prozessoren auf deinem System herauszuholen. Die Methode besteht darin, die Datenquelle in Fragmente zu unterteilen und dann parallele Abfragen auf mehreren Prozessoren für jedes Fragment in einem separaten Worker-Thread durchzuführen. In vielen Fällen bedeutet parallele Ausführung, dass Abfragen deutlich schneller laufen.

Bei paralleler Ausführung kann PLINQ die Leistung deutlich verbessern (im Vergleich zu älterem Code für bestimmte Abfragetypen), oft indem einfach AsParallel-Abfrageoperationen zur Datenquelle hinzugefügt werden. Allerdings kann Parallelismus eine eigene Komplexität mit sich bringen, sodass nicht alle Abfrageoperationen in PLINQ schneller ablaufen. Tatsächlich verlangsamt Parallelismus einige Anfragen. Daher ist es wichtig zu verstehen, wie Themen wie Sortieren parallele Abfragen beeinflussen. Weitere Informationen finden Sie unter Understanding Acceleration in PLINQ.

Einfaches Beispiel

Für 10.000 Datenstücke in der Sammlung lautet der Code wie folgt:



Weitere von PLINQ verwendete Funktionen

1. Mit AsSequential können Sie, wenn Sie im Prozess keine parallelen Abfragen verwenden möchten, diese Funktion nutzen, um sequentielle Abfragen wiederherzustellen.


2. Bei Verwendung von AsOrdered können die Ergebnisse durch parallele Ausführung von PLINQ nicht in der richtigen Reihenfolge sein, was durch Hinzufügen der AsOrderd-Methode abgefragt werden kann.


3. Mit WithDegreeOfParallelism kann diese Eigenschaft die Anzahl der parallelen CUPs auf dem Computer festlegen.


Szenenanmerkung

In vielen Fällen können Abfragen parallelisiert werden, aber der Overhead für die Einrichtung paralleler Abfragen kann die Leistungsgewinne überwiegen.Wenn die Abfrage nicht viele Berechnungen durchführt oder die Datenquelle klein ist, kann die PLINQ-Abfrage langsamer sein als eine sequentielle LINQ-zu-Objekte-Abfrage。 Sie können den Parallel Performance Analyzer im Visual Studio Team Server verwenden, um die Leistung verschiedener Abfragen zu vergleichen, Verarbeitungsengpässe zu finden und festzustellen, ob Abfragen parallel oder sequentiell ausgeführt werden.

Referenz:Der Hyperlink-Login ist sichtbar.





Vorhergehend:【Practical Combat】OpenWrt Installation von luci-app plugin tutorial
Nächster:SQL Server verwendet erweiterte Ereignisse, um Deadlock-Probleme zu verfolgen
 Vermieter| Veröffentlicht am 20.03.2024 22:29:27 |
HuairongChen Veröffentlicht am 20.3.2024, 16:05 Uhr
Ich habe Parallel verwendet, um synchrone Parallelität zu ermöglichen und die Leistung zu verdoppeln, aber ich muss auch auf das Problem der parallelen Datenverarbeitung achten...

Du gibst Item+=1 ein; Ersetze es durch thread.sleep(100) für einen deutlicheren Kontrast
Veröffentlicht am 20.03.2024 16:05:24 |


Ich habe Parallel verwendet, um synchrone Parallelität zu ermöglichen und die Leistung zu verdoppeln, aber ich muss auch auf das Problem der parallelen Datenverarbeitung achten.
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com