On 10/28/13, 1:49 PM, Daπid wrote:
2013/10/28 Kiko <kikocorre...@gmail.com <mailto:kikocorre...@gmail.com>>
Si los datos son lo suficientemente grandes como para que no
quepan en memoria
El problema es que, en principio, no sé si va a ser así. Depende de
los datos en concreto y de la RAM instalada en la máquina (cualquier
cosa entre 4 y 16 GB). Me gustaría poder evitar el disco mientras
fuera posible, pero sin que el programa sea asesinado.
Creeme, a no ser que tengas requerimientos muy precisos, mucho mejor que
se encargue el SO.
2013/10/28 Francesc Alted <fal...@gmail.com <mailto:fal...@gmail.com>>
¿Hay algo ya hecho? ¿Alguna idea más inteligente y eficiente?
Hombre, no se exactamente para que quieres cargar lo mas possible
el array en memoria, pero en esos casos yo lo que haria es guardar
todo el array en disco y dejar que sea el sistema operativo, y no
tu, quien decida que partes se cachean en memoria. A la larga es
mas practico y eficiente.
Cierto, me olvidaba de la caché. Mi idea iba más por usar, digamos,
"backend en memoria" hasta que llegara a un cierto límite, en el que
pasaría a guardarse en disco. Pero quizá, usando directamente la
opción en disco, el SO mantendrá el contenido en caché mientras sea lo
suficientemente pequeño, y el rendimiento será lo suficientemente bueno.
Otra opción sería carray, que tiene la ventaja de ofrecer exactamente
la misma API para memoria que para disco.
http://carray.pytables.org/docs/manual/tutorial.html
Veré cuál se ajusta más a mis especificaciones. Gracias por las ideas.
Bueno, yo tambien habia pensado en carray :). De todas maneras, el
carray lo tengo medio abandonado porque basicamente lo hemos integrado
como un subpaquete en el proyecto Blaze (blaze.pydata.org). El
subpaquete se llama BLZ (blaze.blz), y se trata basicamente de carray,
aunque con algunos retoques y mejoras. El manual de BLZ no lo
encontraras en la web de Blaze ya que esta pensado para no ser visible
directamente por el usuario final, sino mas bien como una forma de
almacenaje mas de Blaze. Pero basicamente se puede tomar el manual de
carray y reemplazando `carray` por `barray` y `ctable` por `btable` mas
o menos todo deberia funcionar tal cual.
--
Francesc Alted
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/