[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