Skip to content

Is disabling idle GC measurably better? #788

Open
@mpickering

Description

@mpickering

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) 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    performanceIssues about memory consumption, responsiveness, etc.type: enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions