On 02 Nov 2013, at 11:11, Pietro Zambelli <[email protected]> wrote:
> 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.
>
> 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.
Ok, ora ho capito.
Questo link:
http://engineering.hearsaysocial.com/2013/06/16/circular-references-in-python/
dovrebbe darti le spiegazioni e i suggerimenti adatti al tuo problema.
> Grazie per il link, lo leggerò di sicuro.
Figurati, anche se quello credo sia specifico all’import dei moduli.
> Anch'io, quando posso, preferisco HDF5, però mi hai incuriosito su MongoDB
> che proverò alla prima occasione! ;-)
Bene. La curiosità è sempre un ottimo punto di partenza :-)
--
valerio
_______________________________________________
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python