[Bese-devel] possible memory issues with UCW

Attila Lendvai attila.lendvai at gmail.com
Sun Jul 16 18:56:03 UTC 2006


>
> I had a short discussion on IRC about this, a quick summary:


i was looking at the ucw internals and it seems like there's a generic issue
with apps that are heavy on dynamic component instantiation. seems like to
me that at various occasions (a component is instantiated or when a
component is added to a container) backtracked places are registered. this
list is cloned into each frame in make-next-frame, so it constantly grows.

assuming that i'm correct with the above and it really needs fixing, we
could turn the backtrack collection into a weak collection and add a
non-weak collection to each component holding its backtracked places, so
that it's not gc'd. then container could remove the backtracks it
registered, and as components go by the weak backtrack collection gets
smaller in the frames.

the problem with this is that sometimes a component is sitting in a
backed-up backtracked place and it is the only reference to it. then the
weak backtrack collection would let it go and a back button would miss the
backtracking of that value. then we need another non-weak collection that is
a per frame backtrack collection and holds those backtracks that were
registered when this frame was the current frame.

but i stop here, because i may be missing something from the big picture...

-- 
- attila

"- The truth is that I've been too considerate, and so became
unintentionally cruel...
- I understand.
- No, you don't understand! We don't speak the same language!"

Ingmar Bergman - Smultronstället (Wild Strawberries)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/bese-devel/attachments/20060716/16f3bf28/attachment.html>


More information about the bese-devel mailing list