This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: gc notes available



(All right, I guess I am still interested in the discussion... :) )

> 1. Tcl/Tk avoids long GC pauses by never garbage collecting.  The
>    process grows without bound over time.  Would you prefer this?

This isn't a fair characterization of Mikael's position.  He's saying
that pauses are more important to him than time spent in GC.  Nobody
here has said we should ditch GC.


> 2. perl avoids long GC pauses by reference counting.  This also will
>    cause the process to grow without bound over time (if circular
>    structures are used) and is generally thought to be much more
>    costly than other forms of GC.  Would you prefer this?

Again, I think this isn't quite fair.  Nobody has suggested reference
counting.


> 3. Emacs has a non generational GC that's on the slow side.  Does its
>    pauses cause a significant degradation of it's UI?

Gosh, yes.  Sometimes I want to buy a gun and shoot it.


> 4. I wrote a tetris game for STk.  It has a non generational
>    conservative GC.  The pauses are unnoticable because I increased
>    the heap allocation at the beginning & call gc at times when it
>    won't be noticable to the user.

This is a tactic that I think could be adapted to get quite acceptable
behavior; with a generational GC, replace "increase heap allocation"
with "only allow small collections", and you've got what seems to me
to be a nice solution.

I think the second advantage of generational GC after efficiency is
that you get finer control: instead of just turning collection on and
off, you can say how much you want.