On 02 Nov 2013, at 11:11, Pietro Zambelli <peter.z...@gmail.com> 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
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a