On Sat, 2002-02-23 at 16:33, Chuck Esterbrook wrote:
> I'm using SessionMemoryStore with a time out of 1 on Python 2.1.1 on
> Linux with Webware cvs. I cleared out my Sessions/*.ses before
> launching the app server.
> The memory grew and after the sessions had expired (according the Admin
> servlet), the memory was the same, which smells like a leak, BUT...
> What's also interesting is that when I reran the test program, after
> expirations, the memory didn't grow anymore except for a couple blips
> (that came back down).
Well, as I remember the allocated memory doesn't cause any load on the
machine until it is actually used -- once it's actually uesd, I don't
know if it can be put back without freeing it. Maybe Python's being
smart by not freeing memory that it will probably need later (since an
application will usually not shrink in memory except temporarily).
Maybe it actually is using resources, but again Python doesn't free
memory quickly because there's a good chance it will be needed again --
if that was the case, I'd imagine there'd be some command-line or
compile-time option to turn that off. Maybe Python would actually free
that memory after some time...?
Anyway, the behavior is probably deliberate, and probably a good idea.
It may or may not be the same on Windows. I think top should show some
distinctions between these different types of memory use.