[Py-MAD] Charla diciembre 2013: "Técnicas y herramientas para diagnosticar y solucionar 'memory leaks'"

Jesus Cea jcea at jcea.es
Thu Apr 3 20:31:23 CEST 2014


On 03/04/14 20:19, Jesus Cea wrote:
> Lee el RFC. Se implementa a nivel de malloc.

PEP, no RFC. Deformación profesional.

> Para hacer lo que dices, yo te recomendaría un sistema de persistencia
> tipo DURUS o ZODB. Si quieres hacerlo 100% transparente, para todos los
> objetos, te vas a cagar, porque si bien puedes volcar bloques directos
> de memoria a disco, éstos contienen punteros. Punteros que tendrás que
> reescribir al cargar los datos, o forzar a que se carguen en la misma
> posición.

Además, un volcado directo de memoria implica que los objetos
persistentes solo funcionarán en una versión CONCRETA y EXACTA de
python. Si cambias de versión o incluso recompilas tu versión actual,
katacrok. Y no de forma limpia con un mensaje de error de "versión
incompatible", sino con un coredump, corrupciones misteriosas,
funcionamiento errático...

No lo hagas.

En el servidor de IRC-Hispano hice algo parecido, para la base de datos
distribuída, pero con estructuras de datos muy sencillas que contenían
verificaciones y que si la verificación fallaba descartabas las
estructuras y las regenerabas de los datos originales, que es lo que
realmente importa.

http://hg.jcea.es/IRC/ircd/file/ef9f6b4641ff/ircd/s_bdd.c

Mira la rutina "mmap_cache". Empieza en la línea 1074.

Mi consejo: en Python, ni te lo plantees.

-- 
Jesús Cea Avión                         _/_/      _/_/_/        _/_/_/
jcea at jcea.es - http://www.jcea.es/     _/_/    _/_/  _/_/    _/_/  _/_/
Twitter: @jcea                        _/_/    _/_/          _/_/_/_/_/
jabber / xmpp:jcea at jabber.org  _/_/  _/_/    _/_/          _/_/  _/_/
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 538 bytes
Desc: OpenPGP digital signature
URL: <https://lists.es.python.org/pipermail/madrid/attachments/20140403/b4b7b11b/attachment.asc>


More information about the Madrid mailing list