Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 3240|Απάντηση: 2

[Πηγή] Βελτιστοποίηση απόδοσης .NET/C# με χρήση παράλληλου ερωτήματος PLINQ

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2/3/2024 5:30:49 μ.μ. | | | |
Τι είναι ένα παράλληλο ερώτημα;

Πολλές πτυχές ενός ερωτήματος PLINQ είναι παρόμοιες με τα μη παράλληλα ερωτήματα LINQ σε αντικείμενα. Όπως τα διαδοχικά ερωτήματα LINQ, τα ερωτήματα PLINQ εκτελούν λειτουργίες σε οποιαδήποτε πηγή δεδομένων IEnumerable ή IEnumerable στη μνήμη<T> και αναβάλλουν την εκτέλεση, δηλαδή δεν αρχίζουν να εκτελούνται μέχρι να απαριθμηθεί το ερώτημα. Η κύρια διαφορά είναι ότι το PLINQ προσπαθεί να αξιοποιήσει στο έπακρο όλους τους επεξεργαστές του συστήματός σας. Η μέθοδος είναι να χωρίσετε την προέλευση δεδομένων σε τμήματα και, στη συνέχεια, να εκτελέσετε παράλληλα ερωτήματα σε πολλούς επεξεργαστές για κάθε τμήμα σε ξεχωριστό νήμα εργασίας. Σε πολλές περιπτώσεις, η παράλληλη εκτέλεση σημαίνει ότι τα ερωτήματα εκτελούνται σημαντικά πιο γρήγορα.

Με την παράλληλη εκτέλεση, το PLINQ μπορεί να βελτιώσει σημαντικά την απόδοση (σε σύγκριση με παλαιότερο κώδικα για ορισμένους τύπους ερωτημάτων), συχνά προσθέτοντας απλώς λειτουργίες ερωτήματος AsParallel στην προέλευση δεδομένων. Ωστόσο, ο παραλληλισμός μπορεί να εισαγάγει τη δική του πολυπλοκότητα, επομένως δεν εκτελούνται όλες οι λειτουργίες ερωτημάτων πιο γρήγορα στο PLINQ. Στην πραγματικότητα, ο παραλληλισμός στην πραγματικότητα επιβραδύνει ορισμένα ερωτήματα. Επομένως, είναι σημαντικό να κατανοήσουμε πώς ζητήματα όπως η ταξινόμηση θα επηρεάσουν τα παράλληλα ερωτήματα. Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Κατανόηση της επιτάχυνσης στο PLINQ.

Απλό παράδειγμα

Για 10.000 κομμάτια δεδομένων στη συλλογή, ο κωδικός έχει ως εξής:



Άλλα χαρακτηριστικά που χρησιμοποιούνται από το PLINQ

1. Χρησιμοποιώντας το AsSequential, εάν δεν θέλετε να χρησιμοποιήσετε παράλληλα ερωτήματα στη διαδικασία, μπορείτε να χρησιμοποιήσετε αυτήν τη δυνατότητα για επαναφορά σε διαδοχικά ερωτήματα.


2. Χρησιμοποιώντας το AsOrdered, επειδή το PLINQ εκτελείται παράλληλα, τα αποτελέσματα ενδέχεται να μην είναι σε σειρά, τα οποία μπορούν να αναζητηθούν προσθέτοντας τη μέθοδο AsOrdered.


3. Χρησιμοποιήστε το WithDegreeOfParallelism, αυτή η ιδιότητα μπορεί να ορίσει τον αριθμό των CUP παράλληλα στον υπολογιστή.


Σημείωση σκηνής

Σε πολλές περιπτώσεις, τα ερωτήματα μπορούν να παραλληλιστούν, αλλά η επιβάρυνση της ρύθμισης παράλληλων ερωτημάτων μπορεί να αντισταθμίσει τα κέρδη απόδοσης.Εάν το ερώτημα δεν εκτελεί μεγάλο αριθμό υπολογισμών ή εάν η προέλευση δεδομένων είναι μικρή, το ερώτημα PLINQ μπορεί να είναι πιο αργό από ένα διαδοχικό ερώτημα LINQ σε αντικείμενα。 Μπορείτε να χρησιμοποιήσετε την Παράλληλη ανάλυση απόδοσης στον Visual Studio Team Server για να συγκρίνετε τις επιδόσεις διαφόρων ερωτημάτων, να βρείτε σημεία συμφόρησης επεξεργασίας και να προσδιορίσετε εάν τα ερωτήματα εκτελούνται παράλληλα ή διαδοχικά.

Αναφορά:Η σύνδεση με υπερσύνδεσμο είναι ορατή.





Προηγούμενος:【Πρακτική μάχη】OpenWrt εγκατάσταση του σεμιναρίου προσθήκης luci-app
Επόμενος:Ο SQL Server χρησιμοποιεί εκτεταμένα συμβάντα για την παρακολούθηση ζητημάτων αδιεξόδου
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 20/3/2024 10:29:27 μ.μ. |
HuairongChen Δημοσιεύτηκε στις 2024-3-20 16:05
Χρησιμοποίησα το Parallel για να επιτρέψω τον σύγχρονο παραλληλισμό για να διπλασιάσω την απόδοση, αλλά πρέπει επίσης να δώσω προσοχή στο πρόβλημα της παράλληλης επεξεργασίας δεδομένων...

Βάζεις item+=1; Αντικαταστήστε το με thread.sleep(100) για πιο εμφανή αντίθεση
Δημοσιεύτηκε στις 20/3/2024 4:05:24 μ.μ. |


Χρησιμοποίησα το Parallel για να επιτρέψω τον σύγχρονο παραλληλισμό να διπλασιάσει την απόδοση, αλλά πρέπει επίσης να δώσω προσοχή στο πρόβλημα της παράλληλης επεξεργασίας δεδομένων
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com