<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On 02 Nov 2013, at 11:11, Pietro Zambelli <<a href="mailto:peter.zamb@gmail.com">peter.zamb@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; font-family: monospace; font-size: 9pt;"><div style="white-space: pre-wrap; margin: 0px; text-indent: 0px;"><span style="font-size: 9pt;">La "circular reference" che credo sia alla base del mio problema è dovuta alla reference tra gli oggetti. Ho creato delle classi che includono altre classi, la cosa funzionava bene per numeri "piccoli", ma evidentemente quando vado a creare alcuni milioni di istanze, queste non vengono adeguatamente pulite dal garbage collector. </span></div></div></blockquote><blockquote type="cite"><div style="font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; font-family: monospace; font-size: 9pt;"><p style="white-space: pre-wrap; margin: 0px; text-indent: 0px;"> </p><div style="white-space: pre-wrap; margin: 0px; text-indent: 0px;">La libreria ("pygrass") fa il wrap utilizzando ctypes di alcune funzioni C di GRASS [0]. Molti degli oggetti che creo, condividono un puntatore alla stessa struct, ho il sospetto che questo ne impedisca l'eliminazione da parte del garbage collector. Nelle prossime settimane cercherò di capire come risolvere la cosa, in ogni caso penso che la libreria necessiti di una ristrutturazione più generale... e stavo pensando di utilizzare cython invece di ctypes per interfacciarmi a basso livello... Ed è per questo che volevo capire qual'è il problema per cercare di evitare di introdurre gli stessi errori.</div></div></blockquote><div><br></div><div><div>Ok, ora ho capito.</div><div>Questo link: <a href="http://engineering.hearsaysocial.com/2013/06/16/circular-references-in-python/">http://engineering.hearsaysocial.com/2013/06/16/circular-references-in-python/</a>  dovrebbe darti le spiegazioni e i suggerimenti adatti al tuo problema.</div></div><br><blockquote type="cite"><div style="font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; font-family: monospace; font-size: 9pt;"><div style="white-space: pre-wrap; margin: 0px; text-indent: 0px;">Grazie per il link, lo leggerò di sicuro.</div></div></blockquote><div><br></div><div>Figurati, anche se quello credo sia specifico all’import dei moduli.</div><br><blockquote type="cite"><div style="font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; font-family: monospace; font-size: 9pt;"><p style="white-space: pre-wrap; margin: 0px; text-indent: 0px;"><span style="font-size: 9pt;">Anch'io, quando posso, preferisco HDF5, però mi hai incuriosito su MongoDB che proverò alla prima occasione! ;-)</span></p></div></blockquote><div><br></div><div>Bene. La curiosità è sempre un ottimo punto di partenza :-)</div></div><br><div>
--<br>valerio<br><br>

</div>

<br></body></html>