OJETIVO
Ver cómo podemos utilizar Coherence para realizar búsquedas.
PROTOTIPO
El código fuente y el fichero con calles está al final del blog.
Ejecutamos el prototipo y vemos:
La carga ha tardado 127799 ms ( 15 ms/municipio )
…
512 bytes de memoria por calle
Tenemos 9997123 calles!
Buscando en el municipio 926 de un total de 8000
#Que quieres buscar?
(pon ‘salir’ para ir al siguiente municipio)>
Buscar %% ha tardado….. 3 ms
El tiempo de respuesta es proporcional al númro de entradas en la caché
Encontradas 6296 coincidencias(mostramos algunas):
[4053]=Street{Name=bulevar de indalecio prieto}
…
#Que quieres buscar?
(pon ‘salir’ para ir al siguiente municipio)>
Buscar %casa% ha tardado….. 195 ms
El tiempo de respuesta es proporcional al númro de entradas en la caché
Encontradas 42 coincidencias(mostramos algunas):
[2528]=Street{Name=calle del doctor casal}
[1757]=Street{Name=camino de la casa vieja}
OBSERVACIONES
-El tiempo de respuesta es directamente proporcional al número de entradas
-El tamaño de heap consumido por cada entrada es de 512 bytes, parece que se alinean los objetos a la memoria.
-Con una estrategia de crear diferentes colecciones (particiones) podremos buscar en grandes colecciones siempre y cuando el ámbito de búsqueda sea acotado (población, código postal,…) y la caché se organice en mini conjuntos (por poblaciones, códigos postales, etc.)
-Tiempo medio de carga por pobación de 15 milisegundos para 8000 poblaciones con un número de calles entre 1 y 9100 (total de calles cargadas 10 millones)
APLICACIONES
Desarrollo de algoritmos de búsqueda tipo “auto completar” en la capa de presentación en las que la experiencia de usuario ha de ser excelente siempre que el conjunto de elementos pueda particionarse en colecciones discretas (de unos 10.000 elementos como máximo)
CODIGO
https://www.dropbox.com/s/lyulkxwb96dppyv/CallejeroCompletionText.z?dl=0
Descomprímelo con:
tar -xzf CallejeroCompletionText.z
CALLES DE MADRID
Casi todas…
https://www.dropbox.com/s/6g9zblpfpixsvxz/CALLESMAD.z?dl=0
Descomprímelo con:
tar -xzf CALLESMAD.z