Documentation

Profiler.

One CPU and memory profiler for every language server.

An orange shared engine connects to two terminal surfaces through circuit paths.

lsp-profiler profiles a running language server without leaving the editor. A language plugs in a runtime crate; sessions, reports and the protocol are shared.

SharpLsp · C# and F# language server for VS Code ↗Unedited, in real time: Profile CPU on a running process, then the results open. Watch the walkthrough ↗

What it measures

  • CPU: sampling sessions, hotspots and flame graphs, exported as speedscope or V8 profiles.
  • Memory: heap snapshots, retention paths and leak scoring.
SharpLsp · C# and F# language server for VS Code ↗Memory tracking, sped up three times: the heap timeline climbs and leak suspects appear. Watch the walkthrough ↗

How it fits together

  1. Your server mounts lsp-profiler and a runtime crate, such as lsp-profiler-dotnet for .NET.
  2. The editor talks to it over one JSON-RPC protocol.
  3. @nimblesite/lsp-profiler-ui renders the results in VS Code.

Add it

cargo add lsp-profiler
cargo add lsp-profiler-dotnet   # for .NET language servers

See it running in SharpLsp and Osprey. The full design is in the profiler spec.