[racket] interactive.rkt
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
timely.
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!
>