Skip to content

A big part of FCS analysis time is spent in GCΒ #13031

@auduchinok

Description

@auduchinok

I'm looking at various perf snapshots and seeing that in many of them about 20-30% of the time that FCS takes to analyse a project graph is spent in GC. Here's the last example, GC takes 41 seconds:

Screenshot 2022-04-21 at 10 41 16

Could we work on finding a systematic approach that would allow us to reduce allocations where possible? Possible things are:

  • reuse some collection objects
  • don't create intermediate lists and use state machine list builders instead
  • use arrays and mutation
  • don't recalculate things where possible

Some of these things aren't very idiomatic in a functional language, but when talking about compiler and editor analysis engine, I think a better performance should matter more than being completely idiomatic.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions