<div dir="ltr">Por echar más leña al fuego, yo he sufrido memory leaks en IronPython. No funciona "idénticamente" a Python, pero se pueden arreglar algunas cosas por configuración...<br></div><div class="gmail_extra">
<br><br><div class="gmail_quote">El 23 de diciembre de 2013, 1:04, Jesus Cea <span dir="ltr"><<a href="mailto:jcea@jcea.es" target="_blank">jcea@jcea.es</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA1<br>
<br>
He comentado este tema porque salió precisamente en mi charla de<br>
"Memory Leaks", Andrey hizo un comentario al respecto, y lo investigué<br>
un poco. Las cosas mejorarán bastante en Python 3.4, en cuanto a<br>
ciclos, leaks, etc. Entre este PEP y el módulo "tracemalloc"...<br>
<br>
Más, abajo...<br>
<div class="im"><br>
On 21/12/13 07:42, J. Javier Maestro wrote:<br>
> Así que sí, __del__ será seguro y se arreglará y/o romperá<br>
> (potencialmente) mucho código Python existente.<br>
<br>
</div>__del__ se llama cuando se borra un objeto y éste no forma parte de un<br>
ciclo. Eso de siempre.<br>
<br>
La diferencia ahora es que también se llamará cuando forma parte de<br>
ciclos. Pero solo se llama cuando ese objeto es "basura". Si algún<br>
programa falla por eso, quiero verlo, porque la únicas referencias que<br>
puede haber a ese objeto son, precisamente, otros objetos de su ciclo,<br>
Y TODO él es basura.<br>
<br>
El problema que teníamos antes era que llamar a un "__del__" cuando<br>
hay un ciclo es problemático porque... ¿y si llamamos al "__del__"<br>
cuando ya hemos eliminado la mitad de los objetos del ciclo, y ese<br>
método intenta acceder a ellos?. Y si tenemos "__del__" en varios<br>
objetos del ciclo, ¿en qué orden se llaman?.<br>
<br>
Lo que se hará en Python 3.4 es llamar primero a todos los "__del__"<br>
del ciclo, sin haber borrado nada antes, y LUEGO, revisar que los<br>
objetos siguen siendo basura (no se han "resucitado") y, si es así,<br>
eliminar los objetos "de verdad".<br>
<br>
A mí me parece bastante seguro, y si algo se rompe, será código<br>
verdaderamente patológico que quiero ver. O, tal vez, no ver :-).<br>
<br>
- --<br>
Jesús Cea Avión                         _/_/      _/_/_/        _/_/_/<br>
<a href="mailto:jcea@jcea.es">jcea@jcea.es</a> - <a href="http://www.jcea.es/" target="_blank">http://www.jcea.es/</a>     _/_/    _/_/  _/_/    _/_/  _/_/<br>
Twitter: @jcea                        _/_/    _/_/          _/_/_/_/_/<br>
jabber / <a href="mailto:xmpp%3Ajcea@jabber.org">xmpp:jcea@jabber.org</a>  _/_/  _/_/    _/_/          _/_/  _/_/<br>
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/<br>
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/<br>
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz<br>
-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v1.4.15 (GNU/Linux)<br>
Comment: Using GnuPG with Thunderbird - <a href="http://www.enigmail.net/" target="_blank">http://www.enigmail.net/</a><br>
<br>
iQCVAwUBUrd98Jlgi5GaxT1NAQJyQAP+PJOFTUNxuWomfMYncT3jfdVGQr+tw+yk<br>
0goPTPr3iex4lQeG7OOyQt7XxKzAfyT9+MVE+7MA8b+Rn4fB1wg9L/ZAY9yv1bKL<br>
dl7xVMRDt3+XtDzuPiGvRF40ik4cpgrBddaWuHkgOA/wCBOPCvmEHh1muYoWi9zq<br>
3wR1Pitkik4=<br>
=KbuH<br>
-----END PGP SIGNATURE-----<br>
<div class="HOEnZb"><div class="h5">_______________________________________________<br>
Madrid mailing list<br>
<a href="mailto:Madrid@lists.es.python.org">Madrid@lists.es.python.org</a><br>
<a href="https://lists.es.python.org/listinfo/madrid" target="_blank">https://lists.es.python.org/listinfo/madrid</a></div></div></blockquote></div><br></div>