[Metakit] memory leak?
zooko at zooko.com
zooko at zooko.com
Sun Jan 22 17:41:26 CET 2006
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()
More information about the Metakit
mailing list