microsoft / vscode-cpptools

Official repository for the Microsoft C/C++ extension for VS Code.
Other
5.51k stars 1.55k forks source link

Tag parser uses only a single core #2083

Open toh-ableton opened 6 years ago

toh-ableton commented 6 years ago

Issue Type: Performance Issue

  1. In User Settings, add "C_Cpp.workspaceParsingPriority": "highest",
  2. Point the "browse.databaseFilename" to a new file so that the tag browser database used for symbol lookup is recreated.

Expected results: If my system is idle otherwise, the extension uses all cores for parsing. Activity Monitor shows <number of cores> x 100% load.

Actual results: The extension uses a single core for parsing. Activity Monitor shows 100% load.

Note: On macOS, 100% load means a single core is running without idling as opposed to Windows, where 100% load means that all cores are running without idling.

Extension version: 0.17.4 VS Code version: Code 1.23.1 (d0182c3417d225529c6d5ad24b7572815d0de9ac, 2018-05-10T16:03:31.083Z) OS version: Darwin x64 17.5.0

System Info |Item|Value| |---|---| |CPUs|Intel(R) Xeon(R) W-2191B CPU @ 2.30GHz (36 x 2300)| |GPU Status|2d_canvas: enabled
flash_3d: enabled
flash_stage3d: enabled
flash_stage3d_baseline: enabled
gpu_compositing: enabled
multiple_raster_threads: enabled_on
native_gpu_memory_buffers: enabled
rasterization: enabled
video_decode: enabled
video_encode: enabled
vpx_decode: enabled
webgl: enabled
webgl2: enabled| |Load (avg)|3, 3, 2| |Memory (System)|32.00GB (0.06GB free)| |Process Argv|/Applications/Visual Studio Code.app/Contents/MacOS/Electron| |Screen Reader|no| |VM|0%|
Process Info ``` CPU % Mem MB PID Process 12 131 81830 code main 1 66 81831 gpu-process 0 295 81833 shared-process 22 524 82417 window (AsyncOneShotListU.cpp — live) 26 164 82418 extensionHost 99 492 82422 /Users/toh/.vscode/extensions/ms-vscode.cpptools-0.17.4/bin/Microsoft.VSCode.CPP.Extension.darwin 0 328 95556 /Users/toh/.vscode/extensions/ms-vscode.cpptools-0.17.4/bin/Microsoft.VSCode.CPP.IntelliSense.Msvc.darwin 82422 18 0 66 95775 /Users/toh/.vscode/extensions/ms-vscode.cpptools-0.17.4/bin/Microsoft.VSCode.CPP.IntelliSense.Msvc.darwin 82422 19 0 33 82471 /Users/toh/.vscode/extensions/ms-vsliveshare.vsliveshare-0.3.246/dotnet_modules/vsls-agent --autoexit --pipe 77b5eb1e8d984c8fa1521b4218d5b673 --service https://insiders.liveshare.vsengsaas.visualstudio.com/ 0 66 82653 electron_node jsonServerMain.js 0 98 82419 watcherService 0 66 82714 searchService 0 66 82932 shared-process 0 66 95954 shared-process 0 0 95955 (ps) 0 0 95956 (ps) 0 0 95957 /bin/ps -ax -o pid=,ppid=,pcpu=,pmem=,command= ```
Workspace Info ``` | Window (AsyncOneShotListU.cpp — live) | Folder (live): more than 20000 files | File types: hpp(9937) h(1402) cpp(922) py(906) png(616) c++(459) | gyp(437) rb(433) sassc(356) c(325) | Conf files: cmake(3) sln(2) makefile(2) launch.json(1) settings.json(1) | tasks.json(1); ```
github-actions[bot] commented 4 years ago

This feature request is being closed due to insufficient upvotes. When at least 2 upvotes are received, this issue will be eligible for our backlog.

deepskyblue86 commented 2 years ago

How do I upvote?

sean-mcmanus commented 2 years ago

Use image

FYI, we may eventually get this as part of our unification work with VS (no ETA though).

deepskyblue86 commented 2 years ago

@sean-mcmanus thank you :)

github-actions[bot] commented 2 years ago

This feature request has received enough votes to be added to our backlog.

Cosss7 commented 1 year ago

I'm from https://github.com/microsoft/vscode-cpptools/issues/10198 and I want to know if I can config something to bypass it? And which step work only can use single core.

sean-mcmanus commented 1 year ago

@Cosss7 FYI, we may be able to use multiple cores in the future, but it might not improve the performance significantly because the database writing can only occur in 1 thread at a time (so that might be the new bottleneck). One potential help might be add more folders to the C_Cpp.files.exclude setting to cause it to parse less files (or remove folders from the browse.path).

Cosss7 commented 1 year ago

Thx I know the issue.