[pyar] Me recomiendan un diccionario?

Mariano Mara mariano.mara en gmail.com
Jue Feb 27 18:14:18 ART 2014



On 27/02/14 17:52, Claudio Freire wrote:
> 2014-02-27 17:49 GMT-03:00 Gustavo Campanelli <gedece en gmail.com>:
>> 2014-02-27 17:46 GMT-03:00 Daniel Moisset <dmoisset en machinalis.com>:
>>>
>>> Hola,
>>>     ando necesitando algo que, por un ratito me guarde varias asignaciones
>>> clave valor y despues poder consultarlo por clave, para obtener el valor
>>> asociado.
>>>
>>> O sea, necesito un dict().
>>>
>>> Mi problema es que:
>>>   - tengo que guardar >40 millones de asociaciones, donde cadena+valor son
>>> en promedio 50 bytes de utf8
>>>   - tengo que hacer ~20 millones de consultas
>>>
>>> Con lo cual un dict() me anda en una maquina con de 64-bits con buena RAM,
>>> y prefiría que los requerimientos sean un poco mas modestos
>>>
>>> Mi patron de uso es bien simplon. Primero genero todos los datos y los
>>> cargo, despues hago todas las consultas, despues tiro el "diccionario" a la
>>> basura (no me interesa persistirlo ni nada).
>>>
>>> Se me ocurren infinitas (muchas) formas de hacerlo. Puedo usar un sqlite,
>>> un mongo, una berkeleydb, y muchas mas. La pregunta es:
>>>
>>> ¿que usarian ustedes que tenga una buena combinación de performance y
>>> simpleza? [dentro del use-case que mencioné]
>>>
>>> Gracias,
>>>      D.
>>>
>>>
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>
>>
>>
>> Yo usaría Sqlite en memoria.
>
>
> bdb, fue diseñado exactamente para eso, mejor no hay
>

En esa misma línea Kyoto Cabinet (en su forma más simple instalando 
libkyotocabinet-dev y yakc) debería ser una forma eficiente y simple de 
hacer el trabajo.

Estaría bueno hacer un benchmark entre varias soluciones y ver cual es 
la mejor, me imagino que  podría ser útil a varios como material de 
referencia.

> Y está en la lib estándard
>



More information about the pyar mailing list