Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 3240|Risposta: 2

[Fonte] Ottimizzazione delle prestazioni .NET/C# usando query parallela PLINQ

[Copiato link]
Pubblicato su 02/03/2024 17:30:49 | | | |
Cos'è una query parallela?

Molti aspetti di una query PLINQ sono simili alle query LINQ a oggetti non parallele. Come le query LINQ sequenziali, le query PLINQ eseguono operazioni su qualsiasi sorgente di dati IEnumerable o IEnumerable in<T> memoria e differiscono l'esecuzione, cioè non iniziano a essere eseguite fino a quando la query non viene enumerata. La differenza principale è che PLINQ cerca di sfruttare al meglio tutti i processori del tuo sistema. Il metodo consiste nel suddividere la sorgente dati in frammenti e poi eseguire query parallele su più processori per ogni frammento su un thread worker separato. In molti casi, l'esecuzione parallela significa che le query vengono eseguite significativamente più velocemente.

Con l'esecuzione parallela, PLINQ può migliorare significativamente le prestazioni (rispetto al codice più vecchio per certi tipi di query), spesso semplicemente aggiungendo operazioni di query AsParallel alla sorgente dati. Tuttavia, il parallelismo può introdurre una propria complessità, quindi non tutte le operazioni di query si seguono più velocemente in PLINQ. In effetti, il parallelismo rallenta alcune query. Pertanto, è importante capire come problemi come l'ordinamento influenzeranno le query parallele. Per maggiori informazioni, vedi Comprendere l'accelerazione in PLINQ.

Esempio semplice

Per 10.000 dati nella raccolta, il codice è il seguente:



Altre funzionalità utilizzate da PLINQ

1. Usando AsSequential, se non vuoi usare query parallele nel processo, puoi usare questa funzione per ripristinare query sequenziali.


2. Usando AsOrdered, poiché PLINQ viene eseguito in parallelo, i risultati potrebbero non essere in ordine, cosa che può essere interrogata aggiungendo il metodo AsOrdered.


3. Usa WithDegreeOfParallelism, questa proprietà può impostare il numero di CUP in parallelo sul computer.


Nota sulla scena

In molti casi, le query possono essere parallelizzate, ma il sovraccarico di impostare query parallele può superare i guadagni di prestazioni.Se la query non esegue un gran numero di calcoli, o se la sorgente dati è piccola, la query PLINQ può essere più lenta di una query sequenziale LINQ a oggetti。 Puoi utilizzare il Parallel Performance Analyzer in Visual Studio Team Server per confrontare le prestazioni di varie query, individuare colli di bottiglia di elaborazione e determinare se le query vengono eseguite in parallelo o in sequenza.

Riferimento:Il login del link ipertestuale è visibile.





Precedente:【Combattimento Pratico】Installazione OpenWrt del tutorial del plugin luci-app
Prossimo:SQL Server utilizza eventi estesi per tracciare i problemi di deadlock
 Padrone di casa| Pubblicato su 20/03/2024 22:29:27 |
HuairongChen Pubblicato il 20-03-2024 16:05
Ho usato Parallel per permettere il parallelismo sincrono e raddoppiare le prestazioni, ma devo anche prestare attenzione al problema dell'elaborazione parallela dei dati...

Metti oggetto+=1; Sostituiscila con thread.sleep(100) per un contrasto più evidente
Pubblicato su 20/03/2024 16:05:24 |


Ho usato Parallel per abilitare il parallelismo sincrono e raddoppiare le prestazioni, ma devo anche prestare attenzione al problema dell'elaborazione parallela dei dati
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com