-
-
Notifications
You must be signed in to change notification settings - Fork 364
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[documentation] Experiment using concurrent garbage collector #789
Comments
I gave
I also checked that these problems did not reproduce without Will open tickets upstream for @bgamari and @osa1 to investigate EDIT: Updated to account for |
Backtrace from
|
Thanks @pepeiborra! I'm looking into it (although do open a GHC ticket as well) |
Fix is in this MR: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3186 Ben reports
|
For the record, this measurement was taken by an ad hoc editing session against the |
@pepeiborra the ghc mr is merged, did it fixed the problems with the concurrent garbage collector? |
I haven't checked |
I have checked again with ghc 8.10.3 and it seems to work pretty well. The crashes are gone. I have seen one crash with
I also collected some performance numbers using the benchmark suite. Overall, the timings were similar or slightly worse in most benchmarks. I wasn't able to find a set of GC flags using For the edit experiment in the lsp-types example the chart below shows the live bytes over time (as reported by
Branch to reproduce: https://github.com/pepeiborra/ide/tree/benchmark-rts-opts-nm |
@pepeiborra Thanks for looking into this. I will ask about the panic you are seeing. Isn't the idea behind using the nonmoving-gc to reduce the pause times? This is interesting for us because if the pause happens when serving a request then the user will notice it. For example, if you hover, then a GC kicks in for 1-2s then the hover response will also be delayed. With the nonmoving-gc then the pause will be shorter and therefore a smoother experience for the user, even if it's slightly slower. |
Yes, that's correct. To measure pauses the benchmark suite needs to be extended to show max time (in addition to total time which it currently does). |
https://twitter.com/monadiccheng/status/1539583255317446658 by @TerrorJack
|
Since this works, can someone raise a PR to add this to the documentation for experimentation friendly users? |
If a GC happens during a request there can be a reasonably big pause if you have a largish heap.
We should try using the concurrent GC to attempt to reduce pause times.
The text was updated successfully, but these errors were encountered: