expert-lsp / expert-lsp/expert

Limited tracing instrumentation makes profiling and performance analysis harder

Open
#310 3 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Elixir
Stars
2.1k
Forks
113
Avg merge
1d 10h
Merged PRs (30d)
26

Description

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_.json` file.

For reference, below is an example screenshot of a profile file generated by [cairols](https://github.com/software-mansion/cairols) and viewed in [perfetto](https://ui.perfetto.dev/), which illustrates the kind of insights that tracing can provide.

Open question is what would be best for row descriptions?

Image

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.