From: Don A. <dal...@us...> - 2002-02-08 05:09:17
|
Does anyone have experience dealing with garbage collection in python? Python 2.X has improved garbage collection, but under python 1.5.2, there have been a few cases where python does not free up data in a database after gramps releases it. With very large databases, this is leading to cases where gramps starts to consume a lot of memory, and the program drastically slows down. I could use some help in figuring out to solve this for python 1.5.2 (again, it doesn't seem to be a problem with python 2.X). Don -- Don Allingham dal...@us... http://gramps.sourceforge.net |
From: Jeffrey C. O. <je...@ol...> - 2002-02-08 07:32:22
|
On Thu, Feb 07, 2002 at 10:08:26PM -0700, Don Allingham wrote: > > Does anyone have experience dealing with garbage collection in > python? Python 2.X has improved garbage collection, but under > python 1.5.2, there have been a few cases where python does not free > up data in a database after gramps releases it. See: <http://www.amk.ca/python/2.0/index.html#SECTION000900000000000000000> for my guess as to what is going on. For Python 1.5.2, the only real solution is to figure out where these cycles are being created and break the cycle by assigning None to some critical link in the cycle before the cycle becomes inaccessible. This can be difficult to do though. Jeff |
From: Don A. <dal...@us...> - 2002-02-09 05:01:42
|
Jeff, Thanks for the help. I was able to find a python module called Cyclops that helped to find the cycles. The problem was that families reference their family members, and the family members referenced their families, creating circular loops. Now, when I close a database, I loop through the families and people, breaking the links before deleting the database. Cyclops now reports no links are left. Hopefully, this will elminate the garbage collection problem. GRAMPS consumes enough memory on its own, without loosing memory due to missed garbage collection. The changes have been committed to CVS. Don On Fri, 2002-02-08 at 00:32, Jeffrey C. Ollie wrote: > On Thu, Feb 07, 2002 at 10:08:26PM -0700, Don Allingham wrote: > > > > Does anyone have experience dealing with garbage collection in > > python? Python 2.X has improved garbage collection, but under > > python 1.5.2, there have been a few cases where python does not free > > up data in a database after gramps releases it. > > See: > > <http://www.amk.ca/python/2.0/index.html#SECTION000900000000000000000> > > for my guess as to what is going on. For Python 1.5.2, the only real > solution is to figure out where these cycles are being created and > break the cycle by assigning None to some critical link in the cycle > before the cycle becomes inaccessible. This can be difficult to do > though. > > Jeff -- Don Allingham dal...@us... http://gramps.sourceforge.net |