OmniSharp / OmniSharp/csharp-language-server-protocol

Startup performance issues

Open
#544 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
638
Forks
109
Avg merge
1m
Merged PRs (30d)
2

Description

The startup of the language server takes on windows >1 sec and on a linux dege device >7 seconds.
We identified the responsible code:

  var Input = Console.OpenStandardInput();
  var Output = Console.OpenStandardOutput();
  //...
      var OmniLanguageServer = await OmniSharp.Extensions.LanguageServer.Server.LanguageServer.From(
        options =>
          options
            .WithInput(Input)
            .WithOutput(Output)
            .ConfigureLogging(x => x
              .AddLanguageServer()
              .SetMinimumLevel(enableDebug ? LogLevel.Trace : LogLevel.Information))
            .OnInitialize((server, request) =>
            {
              initializeParams = request;
              return Task.CompletedTask;
            })
         ).ConfigureAwait(true);

We are currently using version 0.15.0.
Are there any performance improvements in the latest version? Because when we tried to update to the latest version (0.19.0 currently) our software wouldn't compile anymore and then we wouldn't want to spend the effort if no improvements were done.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the LanguageServer.From setup shown in the issue and compare startup behavior between versions 0.15.0 and 0.19.0. Profile initialization on Windows and the Linux edge device, then determine whether a specific regression or avoidable delay can be isolated. Done requires a measured startup improvement and a compatible change, but the issue does not name files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
devtools, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.