[Python] sqlite executemany ed utilizzo/saturazione della memoria...

Valerio Maggio valerio.maggio a gmail.com
Sab 2 Nov 2013 11:35:40 CET


On 02 Nov 2013, at 11:11, Pietro Zambelli <peter.zamb a 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


-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20131102/cfba4d45/attachment.html>


Maggiori informazioni sulla lista Python