Continuamos.
Vamos a ver una característica importante del Madrid que permite que se ejecute, que se procesen los
datos del flujo de forma paralela mediante un pool de Dredd va a procesar el stream y esto hace que
se ejecute mucho más rápido, pero también va a tener un costo en rendimiento.
Vamos a trabajar, vamos a cerrar todo, vamos a abrir el ejemplo.
Ejemplo Stream List Tu stream lo vamos a copiar mejor lo copiamos y lo renombrados para que lo podemos
modificar.
Y acá ejemplo stream parallel.
Los datos son lo mismo.
Lo vamos a mantener, lo que sí íbamos a cambiar un poco el flujo.
El ejemplo primero, la idea de retornar un string con el dato encontrado con el nombre, por ejemplo
Brus.
Entonces vamos a modificar este map que convierte en minúscula.
Lo podríamos quitar también vamos a quitar el PIC por ahora.
Entonces acá vamos a utilizar el Find Henny Punto.
Y si no lo encuentra or else retornamos un string vacío.
No se encontró bien el tipo de dato.
Como esto retorna un string acá cambiamos
nombres.
Bien, tenemos el flujo y por supuesto, acá imprimimos nombres.
Bien, vamos a tomar el tiempo de inicio y fin en la ejecución del string.
Entonces por acá un long tiempo uno de uno igual.
Si un punto carran time en milisegundos.
Y después acá long de dos.
Igual lo mismo current time en milisegundos.
Perfecto.
Y por acá un shout.
Tiempo total.
Dos punto concatenado con paréntesis, porque vamos a restar de dos menos de uno.
El total.
Este más para concatenar y la recta del tiempo final con el tiempo inicial, y acá tenemos el resultado.
Bien, vamos a ejecutar.
Bueno.
Tiempo, un milisegundo.
Es decir, no se Morana, pero vamos a aplicar un delay.
Pero antes de eso voy a simplificar un poco.
Acá estamos concatenado el nombre con el apellido, lo convertimos en mayúscula.
Entonces bueno, acá vamos a quitar esto de acá.
Este con CAT, este también y vamos a utilizar el string.
Mejor.
Entonces, en vez de que nombre tu string?
Es lo mismo porque el toString lo que hace concatenar nombre apellido y acá lo convirtió en mayúscula.
Queda mucho mejor.
Bien, entonces como explicaba, vamos a dar un delay por acá.
Entonces con taime y unit punto ccon, punto sleep de un segundo.
Acá no pide manejar el track catch.
Bien, en el fondo estamos dando un delay a la búsqueda.
Estamos simulando, por ejemplo, una consulta al Ayato que se puede demorar un tiempo, o hago un proceso
o lo que sea por cada elemento.
Y eso va a tener un impacto.
Entonces, por ejemplo, si ejecutamos esto.
Veamos cuánto se demora.
Bueno, son varios tuario, entonces por cada uno empieza a buscar y creo que Bruce esta al final se
demora 7 segundos o menos un segundo por cada elemento 1, 2, 3, 4, 5, 6, 7, claro.
Son 7 milisegundos, 7 segundos y encuentra a Cruz.
Qué estamos retornando?
Le vamos a cambiar el nombre en vez de nombres, resultado para que quede más claro.
Y acá también.
Resultado.
Entonces, cuando tenemos una gran cantidad de datos que procesar, o bien cada procesamiento toma un
tiempo importante.
Podemos aplicar paralelismo, es decir, que los datos del stream se procesen cada uno en un trip separado
de forma paralela para que sea mucho más rápido.
Y lo que vamos a ver entonces por acá con el operador paralelo.
De esa forma convertimos este flujo a un flujo que soporta un pool de drive para que se procesen en
paralelo.
Veamos la diferencia acá son 7 segundos.
Vamos a ejecutar.
Bastante se fija, miren mil, casi un segundo.
Claro, porque se están ejecutando todos en paralelo.
Incluso podríamos aplicar un rastreo utilizando el PIC.
Entonces por acá debajo del mapa Peak System punto out 2 punto punto print.
Veamos.
Acá vamos a ver los nombres se fijan, se ejecuta mucho más rápido y fíjense en el orden como corren
en paralelo todo casi al mismo tiempo.
Probablemente uno terminante, otro después y como maneja un pull de drift, muy probable que algún
elemento del stream va a ser procesado por un mismo hilo que otro elemento, la que podría ser compartido,
quizás algún hilo bien extremo.
Bruce Willis, Catha Pérez, Lalo Mena se fijan.
El orden antre Guzmán no es el mismo, ya que se están ejecutando en paralelo.
De hecho, si comentamos esto.
El para del.
Los problemas a ejecutar.
Ahí van el orden que corresponde, pero van de forma secuencial con el delay, aplicando el delay.
Con los siete segundo, pero va en orden hasta que encuentra a Brus.
Mantiene la secuencia con Parallel, lo ejecuta varios al mismo tiempo.
De hecho, podría modificar este pic.
N De nombre Lleca.
Bueno, una prisión lanta Shout y vamos a imprimir nombre Dredd.
Dos punto más Dredd, punto Carrá en Tried punto Kidney bien, voy a bajar concatena moscón n el nombre
de usuario.
Más.
Acá vamos a ver en nombre entre.
Son casi todo distinto.
Por ejemplo, Lucy Martínez lo procesa Eldred con el nombre Worker 23 y por debajo utiliza el framework
Executiu Service junto con el Ford Yeung Pull y cada uno de son distintos grid, distintos hilos acá
98 23:9 31 5 el 13.
Ezequiel, con el Drizzt principal del método Main, se fija Andrés 27 19 todo distinto.
Por eso es tan rápido.
Prácticamente se mora un segundo.
Si volvemos a ejecutar, probablemente a cambiar el resultado.
9 5:19.
Ezequiel también el main yasi.
Mucho me optimizado, pero tiene el costo de rendimiento, una sobrecarga, quizás en otro sistema.
Bueno, cuando lo utilizamos no siempre va a depender.
Cuando tenemos una gran cantidad de elementos que procesar en el flujo o el procesamiento de elemento,
lleva un tiempo importante.
Alguna sobrecarga tal como lo estamos viendo en el flat map acá que le aplicamos un sleep para simular,
entonces podemos utilizar paralelismo.
Si no, no es necesario.
Bien, si comentamos esto el Parallel, veamos el nombre del Dredd.
Todo va a ser main main, el principal del método main.
Claro, porque se ejecuta de forma secuencial.
Mucho más rápido.
Eso es.
Nos vemos en la siguiente clase.