Skip to content

Limited tracing instrumentation makes profiling and performance analysis harder #310

@Draggu

Description

@Draggu

It seems that the Expert currently has limited tracing support, which makes it challenging to perform detailed profiling and performance analysis.
This is related to #235.

Having additional tracing instrumentation would make it easier to understand where time is being spent, for example:

  • processing individual LSP requests (such as completion or hover)
  • indexing the project
  • building the engine

One possible approach could be to make this tracing optional, to avoid overhead in normal usage.
It could be enabled via:

  • ENV var like EXPERT_PROFILE
  • config checkbox in editor like Enable profiling
  • cli argument like --profile

This would produce .expert/profile_<timestamp>.json file.

For reference, below is an example screenshot of a profile file generated by cairols and viewed in perfetto, which illustrates the kind of insights that tracing can provide.

Open question is what would be best for row descriptions?

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions