[Seaside] Re: New errors, old errors in the dolphin's seaside
Esteban A. Maringolo
eMaringolo at smalltalking.net
Mon Nov 28 20:03:58 CET 2005
Avi Bryant escribió:
> On Nov 26, 2005, at 6:59 PM, Esteban A. Maringolo wrote:
>> Now we must wait and authoritative answer for the side effects of no
>> using a weak container.
> Well, the side effects are that memory use for an individual session
> will grow faster. When the session itself is expired, the memory will
> be reclaimed, so there's no danger of a long-term leak, but the runtime
> footprint of your seaside application will be larger (and more tied to
> the length of the session).
Ok, that's tolerable at this stage of the port.
What should be the expected behavior of weak dictionaries (or
equivalents) to be used in the registries?
Weak keys or weak values?
Can you write a SUnit test case, so I can make it pass?
> I'm actually not convinced that expiring parts of a session via weak
> dictionaries is that great an idea anyway. For one thing, some people
> (especially Netstyle, who have some of the more heavily used Seaside
> deployments out there) have seen some horrific CPU usage in Squeak when
> the weak dictionaries grow too large. For another, the references
> between continuations get messy enough that it's very hard to predict
> whether and when any memory is actually getting collected. And
> finally, expiring "old" pages can lead to some really bad user
> experiences if they ever open up multiple windows on the same session
> (since you can easily use one window to push the frontmost page of the
> other window into expiry, at which point that other window is totally
> unusable). So I'd like to find some other ways to manage long-running
Some kind of undertaker process?
More information about the Seaside