idioma
Call Us: 1-800-497-0151

Blog

Consejos de rendimiento de reglas de negocio de OneStream: subprocesos múltiples para bucles en C# y VB.NET

  • ,Architecto

Con los servidores con procesadores multinúcleo actuales, el uso de programación simultánea puede aumentar significativamente el rendimiento de su Código de Reglas de Negocio. Un escenario común donde brilla la simultaneidad es recorrer grandes conjuntos de datos o realizar tareas repetitivas. Al utilizar múltiples subprocesos en estos bucles, podemos dividir y conquistar, procesando fragmentos de datos en paralelo. En esta publicación, analizaremos el "cómo" y el "por qué" de los bucles for de subprocesos múltiples en las reglas comerciales de C# y VB.NET.

¿Por qué utilizar subprocesos múltiples?

  • 1. Rendimiento: en aplicaciones que requieren operaciones extensas vinculadas a la CPU, como cálculos en un bucle, subprocesos múltiples puede explotar múltiples núcleos de una CPU, ejecutando procesos simultáneamente y mejorando la velocidad de ejecución general.
  • 2. Capacidad de respuesta: en las aplicaciones de interfaz de usuario, descargar bucles que consumen mucho tiempo a un hilo separado mantiene la capacidad de respuesta de la interfaz de usuario. Esto garantiza que la aplicación siga siendo fácil de usar, incluso durante procesos intensivos.
  • 3. Utilización de recursos: el subproceso múltiple puede optimizar la utilización de recursos. Garantiza que mientras un hilo está esperando recursos (por ejemplo, operaciones de E/S), otro puede continuar ejecutándose, asegurando que la CPU no esté inactiva.

¿Cómo crear bucles For multiproceso?

.NET ofrece varias herramientas para el paralelismo, pero en aras de la simplicidad, nos centraremos en el método Parallel.For proporcionado. por el espacio de nombres System.Threading.Tasks.

Ejemplo de VB.NET:

Tomemos un bucle for simple que realiza algunas operaciones síncronas, una a la vez, vinculadas a la CPU:

Para realizar múltiples subprocesos en este bucle utilizando Parallel.For, el código se convierte en:

Ejemplo de C#:

Cosas a tener en cuenta:

  • 1. No siempre es más rápido: la introducción del paralelismo añade gastos generales. Para ciclos o tareas pequeños, los gastos generales pueden anular los beneficios, incluso ralentizando la ejecución. Siempre perfile/cronometre su aplicación para ver si el multiproceso ofrece beneficios reales.
  • 2. Seguridad de subprocesos: cuando varios subprocesos pueden acceder a datos compartidos simultáneamente, pueden ocurrir condiciones de carrera. Asegúrese de que su las operaciones dentro del bucle son seguras para subprocesos. Si es necesario, utilice bloqueos, pero tenga cuidado con posibles puntos muertos.
  • 3. Grado máximo de paralelismo: de forma predeterminada, Parallel.For utiliza tantos núcleos de sistema como estén disponibles. Sin embargo, es posible que no quieras utilizar todos los núcleos, especialmente en un sistema compartido. Controle esto configurando MaxDegreeOfParallelism:

Ordenado: La ejecución paralela no garantiza que las iteraciones se ejecutarán en orden. Si realizar el pedido es crucial, reconsidere si el paralelismo es la opción correcta para su bucle.

En conclusión, los bucles for de subprocesos múltiples tanto en C# como en VB.NET pueden ser una herramienta poderosa para mejorar el rendimiento, especialmente en Escenarios vinculados a la CPU. Sin embargo, como todas las herramientas, debe usarse con prudencia y apropiadamente, considerando la seguridad del hilo y la necesidades específicas de la aplicación. Intente utilizar un bucle for paralelo en su regla y observe el cambio en el rendimiento.

Contact Us MindStream Analytics

¿Quiere saber más sobre los consejos de rendimiento de las reglas comerciales de OneStream? Complete el siguiente formulario y nos comunicaremos con usted en breve.


Socio destacado

Socio Diamante de OneStream

OneStream CPM

OneStream se alinea con las necesidades de su negocio y cambia más rápida y fácilmente que cualquier otro producto al ofrecer una plataforma y un modelo para todas las soluciones financieras de CPM. OneStream emplea guiado Flujos de trabajo, validaciones y mapeo flexible para brindar confianza en la calidad de los datos para todas las recopilaciones y análisis al tiempo que se reduce el riesgo a lo largo de todo el proceso financiero auditable.

OneStream