Continuamos con un ejemplo de análisis y de prueba para testear cuánto se demora y saber bien cuál es
la diferencia entre los distintos tipos.
Concatenación.
Por ejemplo, cuando concatenados con el signo más un streeck, cuando concatenados usando el método
con CAT o bien utilizando la clase String Builder, que serían tres alternativas, tres formas y vamos
a usar una u otra dependiendo el escenario, el contexto.
Trobbiani eso lo vamos a ver ahora.
Entonces, la idea de implementar un ejemplo para poder probar el rendimiento con cada una.
Esta forma vamos a cerrar todas las clases que tenemos.
Vamos a crear una nueva clase.
Vamos a copiar ejemplos.
Trincó que atención lo pegamos acá.
Ese reset, como siempre ejemplo es Trunk.
Rendimiento con.
Ejemplo trinquetes, rendimiento con cata de concatenación refractor, la musiquita, todo esto.
Vamos a definir tres trinquen a igual A,
B
y C a igual al estreno.
A. b., A. b. y C es igual a al objeto A. A la referencia tanto C es a.
Entonces la idea es implementar una iteración, un loop, un for y por ejemplo, concatenar unas 100
veces o quinientas veces un contenido, un texto y ver cuánto se demora en cada una de las formas.
Y tengo que tomar un tiempo inicial y un tiempo final y calcular el tiempo total en tiempo inicial.
Vamos a calcular el tiempo en milisegundos, pero es super simple porque la clase System de Java ya
contiene el tiempo actual.
El carrón time milisegundo.
Que retorna un tipo loncco un tipo numérico.
Esta fecha es un entero milisegundo entre la fecha actual y la fecha de enero primero enero de menos
70 el tiempo UTC.
Sé que es un estándar, que la fecha universal coordinada pero independiente.
Vamos a tomar el tiempo en milisegundos.
Inicio.
Vamos a tener también un fin
y luego vamos a restar ambos.
Fin.
Menos inicio.
El tiempo total en que se demoró en milisegundos, siempre en milisegundos.
Como son tipo numérico del tipo tipológico, acá estamos restando.
Es una recta.
Entonces restamos el último tiempo en milisegundos y cuando comenzamos y acá vamos a concatenar y también
voy a ver un poco más avanzado que después.
Vamos a profundizar cuando veamos todo lo que es flujo de control como ELIF, el switch CAIS y todo
lo que es iteración, todo lo que for el guey.
En fin, pero acá para poder probar tenemos que utilizar un fork, una iteración.
Repetir, por ejemplo, 500 veces un proceso de concatenación y ver cuánto se demora.
Entonces vamos a usar la estructura o el flujo de control for.
Después vamos a ver mucho más detalle.
Comenzando en cero iba a terminar hasta que el contador.
Y acá inicializar un contador y igual a cero.
Iba a finalizar la iteración cuando sea mayor que 1000 o mejor con 500.
Vamos a partir con 500.
Y la idea es que Helí se incremente con más más.
También vamos a ver ese operador.
Este operador más más significa post incremento, pero vamos a ver.
Pero esto es lo mismo que decir y es igual a +1 exactamente lo mismo, por ejemplo.
Y igual y más uno se lo vamos incrementando en uno.
Entonces simplemente se puede abreviar.
Aman más a un incremento en uno, pero no se preocupen que después lo vemos más en detalle.
Pero al final el foro cuenta con tres bloques.
Primero se inicializar esta variable, luego un bloque de evaluación se evalúa para poder finalizar
este ciclo o iteración si se cumple la condición, finaliza.
Es decir, si Helí llega a 500, finaliza el foro y se sale y después de cada iteración, al final acá
se va incrementando en uno.
Pero no se preocupe que después vamos a ver más en detalle.
Pero lo importante es ver la concatenación.
Entonces, primero vamos a evaluar, analizar la concatenación con el método, con CATT.
Entonces sé que tenemos el String A. Va a ser igual a C un espacio acá punto con CATT concatenados con
A punto, con CATT con un punto, con qat, con un salto línea.
Recuerden que se attolini con N acá es con cata no replays.
Sin querer se me marcó otro bien a s concatenar con a Boyé y con un salto de línea.
Esa línea es solamente para que la consola se vea visual después de cada iteración, cada concatenación
de un salto línea.
Ahí después vamos a ver.
Incluso lo podríamos ver ahora, por ejemplo, Zogby Vamos a imprimir el C, que es el resultado final
de la concatenación.
Entonces, veamos cuánto se demora.
Con 500 quinientas iteraciones levantamos.
Se fijan, ahí está el resultado, son quinientas, voy a iraca más rápido.
Se demoró un segundo.
Perdón, un milisegundo, un milisegundo acabo ya comentar, vamos a volver a probar otro texto.
2 Acá se demoró dos, dejémoslo en dos.
2 milisegundos, es decir, bastante rápido, son quinientas iteraciones.
Esta concatenando 500 pesa.
De hecho si bajamos vemos la línea.
Acá podemos ver que está en 500 dos, así que está perfecto.
Bien, vamos a comentar este.
Vamos a probar con el signo más sé más, igual a más, ve más un salto línea me.
Ordenamos este operador lo mismo que decir que se es igual a C más a Maeve concepto va concatenando,
pero acá estamos abriendo que hace que es igual a le concatenados el A.
Y el salto?
El salto línea.
Y vamos uniendo con lo que tenía hace en otras palabra.
Es igual a eso, se es igual al que tenía hace en las otras iteraciones.
En el otro loup anteriores mantenemos lo mismo y continuamos sumando Mafe y el salto, pero esto se
puede simplificar de esa forma.
Vamos a probar, levantamos.
Acá estamos la línea 402.
Está perfecto, se moro 19000 y segundo.
Vamos a comentar.
Es decir, es mucho más rápido el método con CATT se fijan mucho más optimizado.
Pero veamos otra tercera alternativa importante e importante tener en cuenta cuándo usar uno, cuándo
usar otro según los tiempo y la cantidad de elementos o streeck a qué atenerse.
Vamos a ver otra forma utilizando Extrem Builder.
Entonces por acá vamos a crear la instancia
Extrem Builder.
Se ve
y le pasamos un string por defecto.
Le vamos a pasar a A por defecto perfecto.
Entonces comenzamos con el string a este impulso.
Tal como dice el nombre nos permite crear una streeck, empezar a analizar elementos con el método Appen
vamos agregando concatenando y después con el método thus trick.
Generamos el estreno completo de una forma mucho más optimizada.
Una de las característica que Les Trim Builder es mutable, a diferencia del street, que es inmutable.
Por lo tanto, se puede ir modificando el histrión builder con los elementos Vamos a probar, realicemos
el test con Extrem Builder, ese punto Append con APEN concatenados.
Entonces vamos a concatenar primero con A.
Y nuevamente invocamos el método Appen Concatenados Kompel y nuevamente invocamos el método Appen Concatenar
con el salto línea.
Si se fijan acá estamos invocando los métodos de forma encadenada.
Por qué?
Porque el APEN retorna la misma instancia, es decir, el mismo objeto o referencia del ESTEM builder.
Entonces, cómo retorna el Trim Builder?
Podemos volver a invocar a su método de toda forma?
Esto también lo vamos a ver después en programación orientada objeto, cuando se pueden invocar métodos
en cadena, pero para que comprendan lo mismo que punto y coma.
Ese punto Appen punto y coma y ese punto Appen punto y coma, es decir, usando el mismo objeto la misma
referencia Destripe Builder, impugnamos el método APEN tres veces para ir concatenando a Ve y Elene
y vamos a mostrar acá el resultado.
Entonces por acá Zogby se ve, pero lsb punto tu que genere el estre incompleto.
Vamos a probar.
Bien Línea 513 Perfecto.
Y por acá tenemos el resultado cero.
Es decir, se demoró cero milisegundos.
Entonces hay una diferencia brutal en comparación con el con CAT y él más.
Es decir, búlder es mucho más rápido, mucho más optimizado, eficiente para concatenar grande cantidad
de es Trenc cero milisegundos.
Entonces primero gana por lejos el tiempo Wílder, después con Cat dosmiles segundos y después con signo
más 19 milisegundo.
A pesar de que con el signo más cuando concatenados de esta forma por debajo, también utiliza el String
Builder por debajo, pero crea más instancias, más objeto y lo hace de una forma menos eficiente que
utilizar directamente triangula.
Pero qué pasa con 1000, por ejemplo?
Vamos a aumentar al doble.
Bien Extrem Builes se demora cero.
Entonces con mil voy a colocar una coma mil, se demora cero milisegundo.
Me parece más fácil y tener todo en una sola línea podía cortar esto y lo voy a dejar en forma encadenada.
Punto!
Recuerden que el appen retorna.
El objeto se ve en Builders la misma instancia.
Entonces sentí exactamente lo mismo.
De hecho, lo podemos revisar.
Control.
Click.
El código fuente y Reston Matiz Diz también lo vamos a ver, pero Diz Retornã la instancia del objeto
es Trim Builders.
Entonces por eso podemos llamar de forma encadenada los métodos del objeto.
Bien, voy a comentar.
Vamos a probar con Kolkata.
El método con Comtat.
Volvemos a probar.
Ahora se demoró 4 milisegundo con el doble.
Voy a comentar y comentamos acá y probamos con concatenar con más.
Zamora 21.
Veintiún milisegundos sigue siendo más rápido el tren Builder, después con Kate y después con el más.
Vamos a probar Extrem Builder.
Pero ahora con 10000.
Levantamos.
Extrem Builders memora dosmiles segundo., es decir, sigue siendo muy rápido.
Se fijan tresmiles, segundo, volvemos a levantar.
No milisegundo muy rápido con 10000 iteraciones 2 milisegundo.
Vamos a comentar y vamos a probar con el método con CATT.
105.
105 milisegundos.
Miren la diferencia entre uno y otro.
Veamos con esta forma.
Se me olvidó comentar acá, voy a comentar acá.
Ahora sí hay que dejar siempre una sola.
68.
Se fijan ahora con más se morãn menos que con el método con Cata, es decir, entre más elemento, la
brecha se empieza a cortar.
Entre el método con CATT, con el más vamos a probar con mil 10000 de 1000 probábamos con el más.
72 68 estafetas 72.
Está bien.
Voy a comentar y volvemos a probar acá con él, con Kate.
105.
La brecha se empieza a cortar.
Ahora qué pasa si colocamos 100 mil?
Probemos acá con el método con CAT.
Se mira mucho más, se fijan trabajando, ahora se.
5mil 71.
No sé si 71000 1071 segundo, es decir cinco segundos se divide en mil o tenemos los segundos cinco
segundos.
Vamos a comentar.
Vamos a aprobar en C con el más, concatenar con el más.
Mora 1009 76.
Es decir, dos segundos.
Ahora se moverá mucho menos con él más que con el método con Cata.
Ahora mucho más rápido.
Esto que de esta forma.
Veamos el extremo builders.
En builders sigue siendo muy rápido.
8 8 milisegundo.
Y este sería el resultado final, es mucho más rápido por donde se le mire con el tren builders independiente,
la cantidad si son pocos streeck o muchos son pocos ceros, prácticamente ya con mil Proton con 10 mil
dosmiles segundo y con cien mil ocho mil y segundo, Versus con K-T.
Con CATT responde bastante bien cuando son pocos 500 y 1000 dosmiles segundo, 4L segundo versus los
21 mil y segundo que se muera con mil y 19 mil y segundo que se muera con 500 con la forma del más,
entonce con qat, con pocos elementos.
Es más rápido que más, pero si empezamos con cautela ya mucho más.
Con 10 mil o 100 mil se empieza a demorar mucho menos con el más que con el metro, con CATT, con con,
cuando.
Son mucho carácteres, muchos extrem que vamos a concatenar.
No vale la pena, es completamente ineficiente.
Con cien mil se muere cinco segundos, con cien mil de la concatenación, con más demora dos segundos
y acá ocho mil es segundo.
No hay comparación.
El tren Wylde pordebajo funciona de forma muy eficiente, con pacer no es sincronizado.
En fin, tiene mucha característica que lo hace muy optimizado y optimiza al máximo la cantidad de streeck
que genera que genera memoria, mientras que con el con qat crea instancias.
Pero por ejemplo, cuando concatena el CD con la AI crea un objeto aparte del cé y Aportela, ahí tenemos
otro objeto.
Tenemos Sheela más el C+.
Después tenemos el cé Marcela más Elbe.
Otro objeto aparte del set con.
Después tenemos otro objeto que la concatenación de estos tres.
Es decir, por cada vez que se concatena va generando nuevas instancias y con él más solamente una,
dos y tres.
Por ejemplo, acá tenemos una, dos y tres, nada más.
Acá tenemos una, dos y tres más.
La combinación de C con nada de C. Combe y DC con el salto línea, fijan, fijan, son más intense,
más objetos que se guardan en memoria.
Nos vemos en la siguiente clase.