[ZODB-Dev] working with large databases
Greg Landrum
greglandrum@earthlink.net
Thu, 28 Feb 2002 10:39:13 -0800
At 01:33 AM 2/28/2002, Toby Dickenson wrote:
>How often should you call cacheGC? Thats where my patch comes in.
>Without my patch you need to call it lots, and will pay a large
>performance penalty.
>
>With my patch it doesnt matter too much how often it is called, as
>long as it is often enough. Calling every time round the loop will be
>fine, maybe every 10 times or 100 times will save a few % of
>performance.
I had to apply parts of the patch by hand because the versions of DB.py and
Connection.py in the diff file do not correspond to any versions I could
actually find. The result builds and works under linux. On windows it
dumps core as soon as I try and do a commit. This makes me kind of sad
because my big memory machine is running Windows. I'd love to be able to
trace this down, but getting a full debug build of everything I need is a
nightmare I don't want to relive right now.
I'm happy to report that, on linux, using Toby's patch and a call to
_p_jar.cacheGC() every thousand times through the loop reduces memory
requirements substantially. The performance penalty is about 15% (that's a
rough number), which isn't half bad. Color me pleased.
Now if I could just make it work on windows...
Thanks for the help,
-greg
----
greg Landrum (greglandrum@earthlink.net)
Software Carpenter/Computational Chemist