[pyar] Me recomiendan un diccionario?
Angel Java Lopez
ajlopez2000 en gmail.com
Vie Feb 28 09:34:51 ART 2014
Disculpen, me explico mejor.
Prefiero siempre lo simple.
Cada dependencia que se agrega a un proyecto, hace que mueran 10 gatitos,
con lentitud y dolor extremo ;-)
No tengo todo el contexto del caso de uso, pero veo:
- El tiempo de carga de los datos es 1.5 minutos, no parece que preocupe
- Que aumente el tiempo de proceso un poco (a 4 minutos, era?) no parece
importar. Si si aumenta mas
- El tamanio de la memoria es el principal limitante/problema
- Hacer en memoria out of process, como redis, da problema de performace
(por estar out of process), y agregaria, en el caso de redis, que maneja
todo el diccionario en memoria, tambien van a tener problemas de memoria ahi
- Apelar a un nosql, que no trabaje en memoria (por las limitantes que
menciono antes), implica que vaya a disco, y habra que medir, pero puede
ser un problema de performance
Y de nuevo, yo pusheo por lo simple.
Entonces, por que no hacer un programa que en vez de ser
programa0
que hace todo, hacer
programa1 <a> <b>
donde carga las claves y hace las consultas con claves que cumplan con el
predicado hash(clave) modulo a me da b
Es decir
programa1 2 0
programa1 2 1
procesa todo, en dos pasos. Dudo que se vaya mas alla de los 4 minutos,
pero habra que medir.
Y cuando en una maquina haya poca memoria para procesar LA MITAD del
diccionario como arriba, o cuando pasen de 40M a 60M, bastara correr
programa1 3 0
programa1 3 1
programa1 3 2
y listo el pollo y pelada la gallina, como dirian en mi familia
#soytanviejo ;-)
El programa0 pasa a programa1 con apenas dos if (uno para filtrar las
claves que se agregan al diccionario, y otro para filtrar las claves de
consultas)
Less is more
Pero debe haber algo en el requerimiento inicial que se me escapa, para que
Daniel diga "no quiero partir en bloques" o algo asi.
Angel "Java" Lopez
@ajlopez
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140228/feacf89e/attachment.html>
More information about the pyar
mailing list