On 9/16/10 5:41 CDT, Rounin wrote:
Thank you for that advice. I'm using GDC because it's available from Ubuntu
Linux's package system, whereas DMD currently is not. (And the .deb posted on
digitalmars.com is only for i386.) Hopefully, D will gain more popularity and
more
up-to-date tools will be made available.
By the way, today I re-compiled the program with a "std.gc.enable;" right before
the final "return 0" statement, and it still runs in 0.68 seconds. So either
those
objects aren't marked as needing garbage collection, or it's really just an
issue
of keeping the garbage collector from activating too quickly.
I have noted this trigger happiness of the GC since way back during my
doctoral work, and conveyed it several times to Walter and Sean. They
haven't gotten around to it, but I carry most of the blame because it
was a pressing matter to me, not to them.
There are two issues: one is the GC jumps in too early, and the other is
it jumps in too often. A program of mine had a pattern in which it would
need a lot of memory for a long time, during which it would do the
occasional small string allocation etc. There would still be a lot of
collection attempts going on; the GC failed to notice that repeated
collections do not recover much memory.
Thanks Rounin for the comparison. I think it's a great test bed for D's
collector. If you could share the data too, that would be great.
Andrei