Skip to content

Unreasonably enormous memory usage with Kate on Windows since 3.8 #2063

@alex-martin-img1

Description

@alex-martin-img1

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest version
  • Search the existing issues.

Steps to reproduce

I don't know what exactly triggers this and narrowing it down isn't easy, but here's some possible steps:

  1. Install Kate 23.08 on x64 Windows, using traditional installation.
  2. Unpack PowerShellEditorServices somewhere convenient.
  3. Create a PowerShell script like this:
mkdir -ErrorAction SilentlyContinue $env:TEMP/pses-qdls
& 'C:/PATH/TO/PSES/PowerShellEditorServices/Start-EditorServices.ps1' -BundledModulesPath C:/PATH/TO/PSES -LogPath $env:TEMP/pses-qdls/logs.log -SessionDetailsPath $env:TEMP/pses-qdls/session.json -FeatureFlags @() -AdditionalModules @() -HostName 'qdls' -HostProfileId 'qdls' -HostVersion 0.0.0 -Stdio -LogLevel Normal
  1. Enable Kate's LSP client: Toggle on Settings > Configure Kate > Plugins > LSP Client, then apply.
  2. Go to the Settings > Configure Kate > LSP Client > User Server Settings and add a block like this:
{
     "servers": {
          "powershell": {
              "command": ["pwsh", "-NoLogo", "-NoProfile", "-Command", "$PSStyle.OutputRendering = 'PlainText'; & C:/PATH/TO/PowerShellLanguageServer.ps1"],
              "highlightingModeRegex": "^PowerShell$"
          }
     }
}
  1. Open Task Manager and watch the memory usage of the pwsh process Kate spawns as you browse around a large PowerShell project. Make sure you have a build of the project on $PSModulePath so PSES sees its functions etc.

Expected behavior

Reasonable memory usage.

Actual behavior

Memory usage of multiple Gbytes after running for a few minutes.

Error details

No response

Environment data

PS$> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.3.6
PSEdition                      Core
GitCommitId                    7.3.6
OS                             Microsoft Windows 10.0.19043
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Version

3.10.0, 3.9.0, 3.8.7; 3.7.3 not affected

Visuals

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions