<div dir="ltr"><div>This recently came up again. It seems that `+RTS -h -i0` will just turn every minor collection into a major one: <a href="https://gitlab.haskell.org/ghc/ghc/issues/17387#note_248705">https://gitlab.haskell.org/ghc/ghc/issues/17387#note_248705</a></div><div>`-i0` seems significantly different from `-i0.001`, say, in that it just turns minor GCs into major ones and doesn't introduce non-determinism otherwise. Sampling rate can be controlled with `-A`, much like `-F1` (but it's still faster for some reason).<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Mo., 10. Dez. 2018 um 09:11 Uhr schrieb Simon Marlow <<a href="mailto:marlowsd@gmail.com">marlowsd@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><a href="https://phabricator.haskell.org/D5428" target="_blank">https://phabricator.haskell.org/D5428</a><br><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Sun, 9 Dec 2018 at 10:12, Sebastian Graf <<a href="mailto:sgraf1337@gmail.com" target="_blank">sgraf1337@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Ah, I was only looking at `+RTS --help`, not the users guide. Silly me.<br></div><br><div class="gmail_quote"><div dir="ltr">Am Do., 6. Dez. 2018 um 20:53 Uhr schrieb Simon Marlow <<a href="mailto:marlowsd@gmail.com" target="_blank">marlowsd@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">It is documented! <a href="https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/runtime_control.html#rts-flag--F%20%E2%9F%A8factor%E2%9F%A9" target="_blank">https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/runtime_control.html#rts-flag--F%20%E2%9F%A8factor%E2%9F%A9</a><br></div><br><div class="gmail_quote"><div dir="ltr">On Thu, 6 Dec 2018 at 16:21, Sebastian Graf <<a href="mailto:sgraf1337@gmail.com" target="_blank">sgraf1337@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hey,<div><br></div><div>thanks, all! Measuring with `-A1M -F1` delivers much more reliable residency numbers.</div><div>`-F` doesn't seem to be documented. From reading `rts/RtsFlags.c` and `rts/sm/GC.c` I gather that it's the factor by which to multiply the number of live bytes by to get the new old gen size?</div><div>So effectively, the old gen will 'overflow' on every minor GC, neat!</div><div><br></div><div>Greetings<br>Sebastian</div></div><br><div class="gmail_quote"><div dir="ltr">Am Do., 6. Dez. 2018 um 12:52 Uhr schrieb Simon Peyton Jones via ghc-devs <<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">|  Right. A parameter for fixing the nursery size would be easy to implement,<br>
|  I think. Just a new flag, then in GC.c:resize_nursery() use the flag as the<br>
|  nursery size.<br>
<br>
Super!  That would be v useful.<br>
<br>
|  "Max. residency" is really hard to measure (need to do very frequent GCs),<br>
|  perhaps a better question to ask is "residency when the program is in state<br>
|  S".<br>
<br>
Actually, Sebastian simply wants to see an accurate, reproducible residency profile, and doing frequent GCs might well be an acceptable cost.  <br>
<br>
Simon<br>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div>
</blockquote></div></div>
</blockquote></div>
</blockquote></div>
</blockquote></div>