Re: memory leak?

[email protected] Sun, 22 Jan 2006 17:41:26 -0400
Newsgroups gmane.comp.db.metakit
Message-ID <[email protected]>
Dear jcw:

Thank you especially for metakit!

> No.  It's because all changes are buffered in memory until commit.   
> To avoid it, insert "db.commit()", say every 100,000 iterations.

I suspected this might be the case, so I already tried this before reporting my
simplest failing script.  Here is a slightly less simple script, which calls
store.commit() every 100,000 iterations, but uses unlimited memory.

Regards,

Zooko

------- 
#!/usr/bin/env python

import os

import metakit
print metakit, metakit.__version__

store = metakit.storage("leakcheck", 1)
db = store.getas("test_db[k:B]")
    
for i in xrange(2**50):
    k = os.urandom(20)
    db.append(k=k)
    db.delete(db.find(k=k))
    if i%100000 == 0:
        store.commit()
_____________________________________________
Metakit mailing list  -  [email protected]
http://www.equi4.com/mailman/listinfo/metakit