Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 3240|Respuesta: 2

[Fuente] Optimización del rendimiento .NET/C# usando consulta paralela PLINQ

[Copiar enlace]
Publicado en 2/3/2024 17:30:49 | | | |
¿Qué es una consulta paralela?

Muchos aspectos de una consulta PLINQ son similares a consultas LINQ a objetos no paralelas. Al igual que las consultas LINQ secuenciales, las consultas PLINQ realizan operaciones sobre cualquier fuente de datos IEnumerable o IEnumerable en<T> memoria y posponen la ejecución, es decir, no comienzan a ejecutarse hasta que la consulta está enumerada. La principal diferencia es que PLINQ intenta aprovechar al máximo todos los procesadores de tu sistema. El método consiste en particionar la fuente de datos en fragmentos y luego realizar consultas paralelas en múltiples procesadores para cada fragmento en un hilo de trabajo separado. En muchos casos, la ejecución paralela significa que las consultas se ejecutan significativamente más rápido.

Con la ejecución paralela, PLINQ puede mejorar significativamente el rendimiento (en comparación con el código antiguo para ciertos tipos de consultas), a menudo simplemente añadiendo operaciones de consulta AsParallel a la fuente de datos. Sin embargo, el paralelismo puede introducir su propia complejidad, por lo que no todas las operaciones de consulta se ejecutan más rápido en PLINQ. De hecho, el paralelismo ralentiza algunas consultas. Por lo tanto, es importante entender cómo problemas como la ordenación afectarán a las consultas paralelas. Para más información, véase Entendiendo la aceleración en PLINQ.

Ejemplo sencillo

Para 10.000 piezas de datos en la colección, el código es el siguiente:



Otras características utilizadas por PLINQ

1. Usando AsSequential, si no quieres usar consultas paralelas en el proceso, puedes usar esta función para restaurar consultas secuenciales.


2. Usando AsOrdered, dado que PLINQ se ejecuta en paralelo, los resultados pueden no estar en orden, lo que puede consultarse añadiendo el método AsOrder.


3. Usar WithDegreeOfParallelism, esta propiedad puede establecer el número de CUPs en paralelo en el ordenador.


Nota de la escena

En muchos casos, las consultas pueden paralelizarse, pero la sobrecarga de configurar consultas paralelas puede superar las ganancias de rendimiento.Si la consulta no realiza un gran número de cálculos, o si la fuente de datos es pequeña, la consulta PLINQ puede ser más lenta que una consulta secuencial de LINQ a objetos。 Puedes usar el Parallel Performance Analyzer en Visual Studio Team Server para comparar el rendimiento de varias consultas, encontrar cuellos de botella en el procesamiento y determinar si las consultas se ejecutan en paralelo o secuencialmente.

Referencia:El inicio de sesión del hipervínculo es visible.





Anterior:【Combate Práctico】OpenWrt instalación del tutorial del plugin luci-app
Próximo:SQL Server utiliza eventos extendidos para rastrear problemas de bloqueo
 Propietario| Publicado en 20/3/2024 22:29:27 |
HuairongChen Publicado el 20-3-2024 a las 16:05
Usé Parallel para permitir el paralelismo síncrono y duplicar el rendimiento, pero también necesito prestar atención al problema del procesamiento paralelo de datos...

Pones ítem+=1; Cámbialo por thread.sleep(100) para un contraste más evidente
Publicado en 20/3/2024 16:05:24 |


Usé Parallel para permitir el paralelismo síncrono y duplicar el rendimiento, pero también necesito prestar atención al problema del procesamiento paralelo de datos
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com