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


Chris.Bitmead@misys.com.au writes:

 > >3. Emacs has a non generational GC that's on the slow side.  Does its
 >    pauses >cause a significant degradation of it's UI?
 > 
 > If you use the GNUS news reader to read big news groups, I think the answer
 >    is
 > "yes".

This is my point exactly.  Yes, in the above situation there are
significant & annoying delays.  But, it's from the application doing
work, not from the GC.

 > >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.
 > 
 > What if a Tetris player comes along who is more skillful than you? :-)

Won't happen.

But seriously, I gc after the block hits the bottom & after clearing
out full rows.  There are pauses at that time anyway, and variability
in pauses is virtually undetectable by people.  This leaves enough
free space to avoid gc from firing when the block is falling.

 > >6. How often do you have to wait for programs to do things in general?
 >    >I often have to wait for netscape, make, gcc, ... and none of them
 >    >have gc.  Why is waiting for gc a big deal, but waiting for DNS
 >    resolution, or >page formatting, or anything else acceptable?
 > 
 > Good point. Maybe it's because the problem is less predictable. In
 > Netscape, we know what sort of things will cause a delay and we are
 > accepting of that. But when any random event can cause a delay it
 > seems to be more irritating.

Guile is slow enough that doing anything at all will yield a
delay.  I think that these delays being variable length because gc
might hit during them will be unnoticable except in animation style
visual displays.  For these sorts of things, the application should
just turn off gc during such displays & gc & turn it back on at the
next user event.

-- 
Harvey J. Stein
BFM Financial Research
hjstein@bfr.co.il