Once in a while we have had reports of memory leaks. I and others could 
never reproduce it. Today I managed to reproduce it.

On a Mac Pro I was able to reproduce a memory leak of 2000Kb/request with 
python 2.5, 2.7 and all previous version of web2py.

What is really odd is that some of us have run the same tests on other 
platforms (including other macs) and have not observed the problem.
I have run the same tests myself before and I have not seen it before. 
I was able to determine that the problem was caused by cache.disk which is 
initialized whether you want it or not and had an overly complicated logic 
mechanism.
I do not believe the memory leak was caused by the lock itself but, to the 
best of what I could determine, by a circular reference in the shelve 
object itself.

Anyway. THIS IS NOW FIXED FOR GOOD! :-)

First of all the circular reference has been removed and the logic 
simplified. The problem disappeared.
Moreover the creating of cache.ram and cache.disk is now lazy so they are 
only initialized when used. This resulted in a 14% speedup in a typical 
hello world app.

If you are using cache extensively you may want to check out trunk and/or 
nightly built. Please report any problem.

Massimo







-- 



Reply via email to