My blog post is out: http://prl.ccs.neu.edu/blog/2016/05/24/measuring-gc-latencies-in-haskell-ocaml-racket/
Thanks to everyone that participated, the discussion allowed me to noticeably improve the Racket benchmark, its analysis tools, and provide for an interesting discussion. Thanks in particular to Max for providing the initial implementation that I could play with. On Mon, May 16, 2016 at 5:31 PM, Gabriel Scherer <[email protected]> wrote: > On my machine, working from master moves the: > - non-incremental worst pause move from 150ms to 120ms > - incremental-gc worst pause from 163ms to 120ms > > I experimented with explicit GC calls during the ramp-up period again, > and on master it seems to be interesting. I have to choose a > high-enough frequency (1 over 100 is not enough, 1 over 30 or 1 over > 50 give net improvements), and to call the gc not only during the > rampup, but also after it. Calling the GC between (window-size / 2) and > (window-size * 2) seems to work well -- and the results are very sensitive > to these factors, for example stopping only after (window-size * 1.5) > degrades > the efficiency a lot (but more than 2 doesn't help much). > > With this rampup strategy, I get the pause time down to 40ms with the > incremental GC, with a modest throughput cost: if I amortize by > iterating 2 million times instead of 1 million times, explicit GC > during rampup moves total runtime from 11s to 13s. > (These explicit calls only help when the incremental GC is used > (obviously ?). In fact they actively hurt when the non-incremental GC > is used.) > > I added the ramp-up code, disabled by default, to the Racket > benchmark. I'm satisfied with the current results and I think they'll > make for a fine post (I think explaining the ramp-up problem and how > to observe/detect it is more important and useful than the details of > the current hack to mitigate it). > > On Mon, May 16, 2016 at 11:34 AM, Matthew Flatt <[email protected]> > wrote: > > At Mon, 16 May 2016 11:21:43 -0400, Gabriel Scherer wrote: > >> If you were willing to make publicly available a patchset with your > >> GC tuning on top of Racket's current master branch (or whatever; or > >> apply them to master directly, of course), [...] > > > > Certainly --- those changes are already in the master branch (pushed > > before my original reply). > > > -- You received this message because you are subscribed to the Google Groups "Racket Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/CAPFanBHZG_a%3D9yK73fLc0LAbU_guO83YA3%3DxpX7rAP3cb7nMaw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
