[racket] interactive.rkt

From: Greg Hendershott (greghendershott at gmail.com)
Date: Wed Oct 13 23:15:41 EDT 2010

I've been trying something lately that, although it doesn't need to be
hard real time, "really timely" would be good. Or at least, evenly

As a result I've been keeping an eye on the GC log-debugs, curious
about the patterns.

I'll see a series of minor GCs that are <30 msec each (no problem),
punctuated by occasional major GCs that are 700+ msec. Sometimes even
two such majors in a row, approaching 1.5 secs combined. i.e. Really
untimely. And unevenly: When and why it will happen, is not
predictable, a puzzle so far.

I think that's why the collect-garbage calls caught my eye.

On Wed, Oct 13, 2010 at 9:39 PM, Eli Barzilay <eli at barzilay.org> wrote:
> Three minutes ago, Greg Hendershott wrote:
>> Every time I read your code I learn more. And learn how much more I
>> have left to learn. :)
> (Well, there are some low-level namespace and similar pieces of code
> there...  Stuff that you'd want to learn only if you're interested in
> making similar meta-tools.)
>> I'm curious why does time** start by doing 3 (collect-garbage) calls
>> in a row?
> I don't remember whether it was weak pointers or will executors that
> can require two GCs (maybe both do).  And as long as it's GCing
> explicitly, it can just as well run another one...
> --
>          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
>                    http://barzilay.org/                   Maze is Life!

Posted on the users mailing list.