haskell / haskell/haskell-language-server

Is disabling idle GC measurably better?

Offen
#788 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
performance type: enhancement
Vorherrschende Sprache
Haskell
Sterne
3k
Forks
455
Ø Merge
2 T. 19 Std.
Gemergte PRs (30 T.)
11

Beschreibung

I would think that an idle GC would be well-suited for an IDE. There are long periods where the application is not going anything which could be used for GC.

The argument presented by @ndmitchell ([here](https://stackoverflow.com/questions/34588057/why-does-shake-recommend-disabling-idle-garbage-collection/)) is that "in a build system", there are usually external tasks which are running for over 0.3s. However, as we have observed in ghcide, most actions run for a very short amount of time (see haskell/ghcide#503)

What happens in my experience when using `ghcide` is that hovering triggers a GC which causes a noticeably pause with a large heap.

We should actually come up with a metric to measure which one is better. These flags were added in haskell/ghcide#329 by @pepeiborra who claimed that it reduced hover time by `4s`, but why would that be the case? The way to investigate is to record an eventlog I think.

Related to haskell/ghcide#512 as well.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.