Hi all, I'm trying to understand some questions about Zope and Memory management. I've configured a Zope with minimal Cache settings: 100 objects of cache, 4 threads and 20 Mb of ZEO Cache. The Storage is a DirectoryStorage of 4Gb. Monitoring the Zope process, all is running fine: it takes about 30 Mb of RAM. I've see that just 2 of the threads are working. The problem begins when I execute a report. The report is a PageTemplateFile that calls a method to obtain a list of processed results and send them to the user. It takes some time of process, but it works fine. What I don't understand is why, after this report, Zope is taking 120 Mb of RAM !! Too much for the cache I have. I've look for for a memory leak, showing refcounts in method like this: def _get_refcounts(self): import sys import types d = {} sys.modules # collect all classes for m in sys.modules.values(): for sym in dir(m): o = getattr (m, sym) if type(o) is types.ClassType: d[o] = sys.getrefcount(o) # sort by refcount pairs = map (lambda x: (x[1],x[0]), d.items()) pairs.sort() pairs.reverse() return pairs But there is nothing rare. I can see how the refcounts of some objects are heavely incresed during the process of the report, but when finished they are freed. But RAM of the Zope process don't decrease. Anybody have an explanation ? It's recomended to run this kind of reports in a new process ? In this case, there are any products to help this way ? Thanks in advance Santi Camps