On Fri, 08 Oct 2010 04:25:30 +0400, Leandro Lucarella <l...@llucax.com.ar> wrote:

Leandro Lucarella, el 10 de septiembre a las 09:26 me escribiste:
Bernard Helyer, el 10 de septiembre a las 04:49 me escribiste:
> Very nice. I've been reading your posts on this with interest.
>
> How much work would be involved in porting this to druntime?

Is hard to tell since I didn't followed druntime development very
closely lately, but both are based on the same code, so probably not too
much work should be involved.

BTW, I just saw there were quite a few replies to this threads while my
internet connection was down for a couple of weeks (just after I posted
this), that I didn't received.

I'm sorry about the silence, I'll try to reply the things that might
still be of interest, and I'll take this opportunity to say that CDGC is
"finished", see the blog post for (a few) more details:
http://llucax.com.ar/blog/blog/post/-7454ab1d


Now the replies.

David Simcha asked:

Been meaning to ask, what does this GC do with regard to precise
scanning?  Is it substantially less conservative than the current D2
GC?

Yes, if the compiler support is there. It uses the patch to DMD posted
by wm4 to scan the heap precisely. See bug 3463 for details:
http://d.puremagic.com/issues/show_bug.cgi?id=3463


Andrei Alexandrescu said:

There's a discussion on digitalmars.D about a D program being slower
than the equivalent Python script because of the GC. Would be a good
test bed!

http://rounin.livejournal.com/21815.html

I'll try it when I have some time. I wouldn't expect much improvement
because it only uses AAs that doesn't get scanned precisely yet (IIRC
from wm4 patch), but there are a few optimizations that could help with
dynamic arrays (which are also used frequently). We'll see :)

OTOH, Dil does a lot of string processing using too AAs and dynamic
arrays (AFAIK) and the improvement is huge using CGGC :). As a sample,
attached are the results for a Dil run generating all the Tango docs,
using 1 CPU (using more CPUs is a little faster), for the Tango basic GC
(TBGC) and several configurations of the CDGC. The file named "time"
measures the total run time (i.e. the throughput), the one named "stw"
measures the maximum stop-the-world pause (i.e. the time no thread can
run) and the file named "pause" measures the maximum time the GC will
actually block the program (i.e. the maximum real latency). All in
seconds, for 50 runs (the run time) and 20 runs (the pause time),
minimum is in black, maximum in white, and the mean is centered between
2 std deviations (in grey).



Hi, Leandro!

I tried using your GC under D2/Windows, and unfortunately it crashes with Access Violation (I used a version modified by Sean as a starting point with little changes to fix compilation error).

Are there any plans supporting it? I'm willing to help with testing it as much as I can.

Thanks!

Reply via email to