Mejorando el performance de tu app, trabajar con procesos en paralelo

En ocasiones es posible que tu aplicación este sufriendo un mal rendimiento como consecuencia de hacer diferentes procesos secuenciales sin que realmente exista una dependencia entre ellos.

Estos procesos son firmes candidatos a ser usados en paralelos en diferentes subprocesos de tu proceso principal, de forma que el tiempo que tu proceso principal tarda en ejecutarse sea igual al tiempo del peor de los subprocesos, y no una suma secuencial de los tiempos de cada subproceso.

A continuación te presento como hacer esto de forma simple. 

Imagina que tienes el siguiente código:

Tu MainProcess tardará en ejecutarse 5 segundos, pero podrías reducirlo a 3 segundos de la siguiente manera:

Con esta ejecución tus 3 hilos serán paralelos, tardando tu proceso principal lo que el tarde el mas lento de ellos.

Hay que tener ciertas consideraciones al paralelizar procesos, como usar objetos que sean thread safe, tener cuidado con las variables globales… todo esto da para otras entradas, pero lo importante es que si lo ves claro, podrás ganar performance con acciones como esta, siendo Parallel de System.Threading.Tasks.

Un saludo.

Deja un comentario