Eficiencia con Strings en Java

Bueno, el post de hoy no es que sea muy linuxero, pero ya sabéis que de vez en cuando me gusta poner cosillas de programación. Más que nada las pongo porque son cosas que veo y, a lo peor, no tengo tiempo de toquetear en éste momento y teniendo aquí lo básico, algún día que tenga más tiempo me podré poner con ellas para darles un buen meneo. Y también para cuando estoy picando alguna aplicación y me acuerdo que por aquí tengo algo que me vendría bien😀

Hoy el tema va de Java (perro viejo, bien conocido) y las String (también viejas amigas aunque nunca me haya adentrado mucho en su API). Al parecer la clase String de java se implementa sobre un array estático, lo que conlleva que la carga de procesador al hacer cualquier operación con ellas se vaya por las nubes. Yo, normalmente, prefiero cargar el procesador (que según mi opinión van increiblemente sobrados porque la gente tiene micros que tiran de más de 2ghz y para un uso normal me parece una burrada) que la memoria (que me parece un bien mucho más escaso). Pues bien, hoy la solución va a la inversa. Vamos a ver como utilizando más memoria podemos aligerar la carga de procesamiento cuando hacemos cualquier operación con Strings, es decir, concatenar, mostrar, reemplazar caracteres, dividirla en cachos….

Ésto se consigue cambiando la estructura de datos. En concreto vamos a cambiar Strings por Ropes.

¿qué es eso de un Rope?

Yo tampoco tenía ni idea, pero al parecer es una idea que data de 1995 (podéis ver el artículo aquí) y consiste en almacenar cadenas de caracteres utilizando una estructura de árbol, que consume mucha más memoria pero permite rebajar notablemente la complejidad de las operaciones.

Algo más reciente que el concepto es el desarrollo, por parte de Amin Ahmad, de una implementación 100% Java de Ropes y 100% libre bajo licencia GPL (al final siempre sale el tema eh? jeje…)

De momento nada más, pero me guardo ésto para hacer una comparativa cuando termine los exámenes y vuelva de presentar el R4P en el congreso IADIS Multiconference en Amsterdam😀

Fuente: JavaHispano

  1. Usually I do not learn article on blogs, however
    I wish to say that this write-up very compelled me to check out and do it!
    Your writing style has been amazed me. Thanks,
    quite nice post.

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: