I've just updated to the latest SVN of poly, and my compile times have
ballooned up. Prodding it a bit, it looks to me like there's a memory
leak in the interpreter.

Here's what I do to get it to happen:

1. Fire up poly and load a modest heap (59 megs) containing about 100
structures and functors. top shows poly's RAM usage goes to a little
over 59 megs.
2. Run some pretty functor-heavy code, including some code that looks
(essentially) like this:

structure Structure1 = Functor1(....);
structure Structure2 = Functor2(structure Foo = Structure1);
structure Structure3 = struct open Structure1; Structure2; end
structure Structure4 = Structure3 : SIG

Admittedly, these are some pretty big structs, and poly's RAM usage
hits over a gig, and doesn't go back down once execution is finished.
"PolyML.fullGC ();" seems to have no effect.

3. Save the heap, still < 70 megs.
4. Close and open poly w new heap, RAM usage still < 70 megs

So, the compile-time slowness seems to be poly filling the system's
RAM and starts swapping pages. I included the code above on the off
chance there's some cyclic dependency between the structs that keeps
some junk from being garbage collected.

I can give SVN links if you want to see the offending code itself, but
its part of a pretty large project, so I don't know how helpful that
would be.


Thanks!
Aleks
_______________________________________________
polyml mailing list
[email protected]
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to