Skip to content

C/C++ 1.35.6: cpptools memory grows to >1.7 GB in an existing profile #14856

Open

Description

@RomanCohort

Environment

  • VS Code: 1.113.0
  • OS: Windows 11 (10.0.26300), x64
  • Extension: ms-vscode.cpptools 1.35.6
  • Compiler: MinGW GCC, windows-gcc-x64
  • Workspace: small folder, no large C++ project; includePath was ${workspaceFolder}/**

Symptoms

After enabling C_Cpp.intelliSenseEngine (default) in an existing profile, cpptools.exe private memory grew rapidly and did not stay bounded:

  • 207 MB -> 309 MB in about 5 seconds
  • 478 MB shortly after restart
  • Later reached 1.56 GB, then 1.72 GB while the process was still running

Stopping cpptools.exe releases the memory temporarily, but the extension restarts the process and it begins growing again. Setting "C_Cpp.intelliSenseEngine": "disabled" stops the language server and prevents further growth.

Isolation result

I also created a clean profile with only ms-vscode.cpptools 1.35.6 and opened a trivial test.cpp:

  • Peak: about 710 MB
  • After initialization: settled around 355 MB

So this is not reproducible with only the extension and a trivial workspace. The large growth appears in an existing profile with other extensions/windows, but it is still a large, repeatable regression relative to the clean profile.

Request

Please advise whether this is a known issue in 1.35.6, or what diagnostic output would help identify the interaction. I can provide a C/C++ log and a process-memory trace if needed.

Activity

  1. RomanCohort commented on Nov 3, 2026

    @RomanCohort
    Author

    Additional isolation data from the same Windows 11 / VS Code 1.113.0 environment:

    I launched multiple VS Code windows in one clean profile containing only C/C++ 1.35.6 and opened the same trivial test.cpp in each window.

    • 3 windows: 18 cpptools/cpptools-srv/cpptools-srv2 processes; peak about 2.15 GB private / 991 MB working set, then settled around 1.09 GB private / 424 MB working set.
    • 5 windows: 31 cpptools-related processes; about 2.37 GB private / 1.01 GB working set during startup.
    • The largest individual cpptools-related process observed was about 142 MB.

    So the 4 GB figure is likely an aggregate of multiple language-server/parser worker processes across windows, not one process. I am adding this in case it helps reproduce or explains the report. I can still collect a C/C++ log if useful.

  2. RomanCohort commented on Nov 3, 2026

    @RomanCohort
    Author

    Rollback result from the same main profile:

    After closing VS Code, replacing 1.35.6 with 1.34.4, pinning 1.34.4, and reopening the same trivial C++ file in the existing profile:

    • Startup peak: about 873 MB private across cpptools processes
    • Settled: about 400 MB private / 175 MB working set
    • No continued growth to the previous >1.7 GB range

    This makes 1.34.4 a usable workaround for the affected profile. The clean-profile 1.35.6 test still peaked around 710 MB and settled around 355 MB, so the exact trigger may require the full profile, but the rollback difference is useful.

  3. sean-mcmanus commented on Nov 4, 2026

    @sean-mcmanus
    Contributor

    YAN (@RomanCohort) What does "existing profile" mean?

    What is the memory breakdown per-process?

    cpptools potentially accumulates memory based on the entire workspace, but cpptools-srv should only accumulate memory based on the current TU (source+headers) and cpptools-srv2 should only accumulate memory based on the last file that was tag parsed.

    Did you have any repro workspace we could try?

    Also, 1.7 GB for all the cpptools* processes is not "out of the ordinary" necessarily. What does "continued growth" mean? How far does it grow? Does it OOM crash?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Language Servicebugmore info neededThe issue report is not actionable in its current stateregressionA bug that didn't exist in a previous release

Type

Projects

  • Status
    No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions