Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 3240|Répondre: 2

[Source] Optimisation des performances .NET/C# utilisant la requête parallèle PLINQ

[Copié le lien]
Publié sur 02/03/2024 17:30:49 | | | |
Qu’est-ce qu’une requête parallèle ?

De nombreux aspects d’une requête PLINQ sont similaires aux requêtes LINQ vers Objets non parallèles. Comme les requêtes LINQ séquentielles, les requêtes PLINQ effectuent des opérations sur toute source de données IEnumerable ou IEnumerable en<T> mémoire et diffèrent l’exécution, c’est-à-dire qu’elles ne commencent à s’exécuter qu’une fois la requête énumérée. La principale différence est que PLINQ essaie de tirer le meilleur parti de tous les processeurs de votre système. La méthode consiste à partitionner la source de données en fragments puis à effectuer des requêtes parallèles sur plusieurs processeurs pour chaque fragment sur un thread de travail distinct. Dans de nombreux cas, l’exécution parallèle signifie que les requêtes s’exécutent beaucoup plus rapidement.

Avec l’exécution parallèle, PLINQ peut améliorer significativement les performances (par rapport à l’ancien code pour certains types de requêtes), souvent en ajoutant simplement des opérations de requête AsParallel à la source de données. Cependant, le parallélisme peut introduire sa propre complexité, donc toutes les opérations de requête ne s’exécutent pas plus rapidement dans PLINQ. En fait, le parallélisme ralentit certaines requêtes. Il est donc important de comprendre comment des problèmes tels que le tri affectent les requêtes parallèles. Pour plus d’informations, voir Comprendre l’accélération dans PLINQ.

Exemple simple

Pour 10 000 données de la collection, le code est le suivant :



Autres fonctionnalités utilisées par PLINQ

1. En utilisant AsSequential, si vous ne souhaitez pas utiliser de requêtes parallèles dans le processus, vous pouvez utiliser cette fonctionnalité pour restaurer en requêtes séquentielles.


2. En utilisant AsOrdered, comme PLINQ s’exécute en parallèle, les résultats peuvent ne pas être dans l’ordre, ce qui peut être interrogé en ajoutant la méthode AsOrdered.


3. Utiliser WithDegreeOfParallelism, cette propriété peut définir le nombre de CUPs en parallèle sur l’ordinateur.


Note de la scène

Dans de nombreux cas, les requêtes peuvent être parallélisées, mais la surcharge de la configuration des requêtes parallèles peut l’emporter sur les gains de performance.Si la requête n’effectue pas un grand nombre de calculs, ou si la source de données est petite, la requête PLINQ peut être plus lente qu’une requête séquentielle LINQ vers objets。 Vous pouvez utiliser l’analyseur de performance parallèle dans Visual Studio Team Server pour comparer les performances de différentes requêtes, identifier les goulots d’étranglement de traitement et déterminer si les requêtes s’exécutent en parallèle ou séquentiellement.

Référence:La connexion hyperlientérée est visible.





Précédent:【Combat pratique】Installation OpenWrt du tutoriel du plugin luci-app
Prochain:SQL Server utilise des événements étendus pour suivre les problèmes de blocage
 Propriétaire| Publié sur 20/03/2024 22:29:27 |
HuairongChen Posté le 20-03-2024 à 16:05
J’ai utilisé Parallel pour permettre le parallélisme synchrone afin de doubler les performances, mais je dois aussi faire attention au problème du traitement parallèle des données...

Tu mets l’item+=1 ; Remplacez-le par thread.sleep(100) pour un contraste plus évident
Publié sur 20/03/2024 16:05:24 |


J’ai utilisé Parallel pour permettre le parallélisme synchrone afin de doubler les performances, mais je dois aussi faire attention au problème du traitement parallèle des données
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com