microsoft / vscode-azurearmtools

Azure Resource Manager Tools for Visual Studio Code
https://marketplace.visualstudio.com/items?itemName=msazurermtools.azurerm-vscode-tools
MIT License
133 stars 80 forks source link

High memory consumption when loading ARM JSON template. #1709

Open ptsapralis opened 1 month ago

ptsapralis commented 1 month ago

Type: Performance Issue

Memory consumption on the Apple Silicon Mac skyrockets at 3.5+ GB once I open a single small-size ARM template into VS Code.

Extension version: 0.15.11 VS Code version: Code 1.89.1 (Universal) (dc96b837cf6bb4af9cd736aa3af08cf8279f7685, 2024-05-07T05:14:24.611Z) OS version: Darwin arm64 23.5.0 Modes:

System Info |Item|Value| |---|---| |CPUs|Apple M1 Pro (10 x 24)| |GPU Status|2d_canvas: enabled
canvas_oop_rasterization: enabled_on
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
video_decode: enabled
video_encode: enabled
webgl: enabled
webgl2: enabled
webgpu: enabled| |Load (avg)|4, 3, 3| |Memory (System)|16.00GB (0.05GB free)| |Process Argv|--crash-reporter-id 16489c40-bc09-45e3-bcc5-5b284c33690b| |Screen Reader|no| |VM|0%|
Process Info ``` CPU % Mem MB PID Process 8 115 32101 code main 3 49 32105 gpu-process 0 16 32106 utility-network-service 2 98 32110 window [1] (Dockerfile — Ubuntu Jammy Server (22.04) Lab Docker Image) 0 180 32111 window [2] (Azure-DEVOPS-Pipelines-Self-Hosted-Agents-Azure-Gallery-Image-VM-template-V2.json — IntegrationScaleSet-Images) 1 98 32112 window [3] (main-sbapi.tf — em-supplierbookingapi-infra) 1 98 32114 window [4] (generate-ssr-load-test-links.sh — ssr-service-load-test) 1 98 32115 window [5] (Slack Channel exp-tech-inc-too-many-500s-on-bag-fs KQL Queries (20240410).loganalytics) 0 33 32120 extensionHost [5] 0 16 32154 electron-nodejs (languageserver.js ) 2 66 32121 shared-process 0 0 37381 /bin/ps -ax -o pid=,ppid=,pcpu=,pmem=,command= 0 16 32122 fileWatcher [5] 0 33 32123 extensionHost [4] 0 16 32149 electron-nodejs (server.js ) 0 16 32187 electron-nodejs (languageserver.js ) 0 33 32124 extensionHost [1] 0 16 32144 electron-nodejs (server.js ) 0 16 32145 electron-nodejs (server.js ) 0 16 32167 electron-nodejs (languageserver.js ) 0 16 32330 /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=32124 0 66 32125 extensionHost [2] 0 16 32152 /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=32125 0 16 32190 electron-nodejs (languageserver.js ) 1 66 32220 /Users/ptsapralis/Library/Application Support/Code/User/globalStorage/ms-dotnettools.vscode-dotnet-runtime/.dotnet/7.0.20~arm64/dotnet /Users/ptsapralis/.vscode/extensions/msazurermtools.azurerm-vscode-tools-0.15.11/languageServer/Microsoft.ArmLanguageServer.dll --logLevel Warning 0 49 32126 extensionHost [3] 0 0 32141 /Users/ptsapralis/.vscode/extensions/hashicorp.terraform-2.30.1-darwin-arm64/bin/terraform-ls serve 0 16 32188 electron-nodejs (languageserver.js ) 0 33 32129 fileWatcher [2] 0 16 32131 fileWatcher [3] 0 16 32132 fileWatcher [1] 0 16 32133 fileWatcher [4] 0 33 32142 ptyHost 0 0 32151 /bin/bash --init-file /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/contrib/terminal/browser/media/shellIntegration-bash.sh 2 82 37376 window [6] (Issue Reporter) ```
Workspace Info ``` | Window (generate-ssr-load-test-links.sh — ssr-service-load-test) | Window (main-sbapi.tf — em-supplierbookingapi-infra) | Window (Azure-DEVOPS-Pipelines-Self-Hosted-Agents-Azure-Gallery-Image-VM-template-V2.json — IntegrationScaleSet-Images) | Window (Dockerfile — Ubuntu Jammy Server (22.04) Lab Docker Image) | Folder (ssr-service-load-test): 211 files | File types: js(36) svg(30) ttf(9) woff(9) woff2(9) log(6) txt(4) css(3) | ico(3) webmanifest(3) | Conf files: | Folder (em-supplierbookingapi-infra): 13 files | File types: tfvars(4) tf(3) hcl(2) gitignore(1) md(1) | Conf files: | Folder (IntegrationScaleSet-Images): 10 files | File types: sh(4) json(2) gitignore(1) md(1) | Conf files: | Folder (Ubuntu Jammy Server (22.04) Lab Docker Image): 3 files | File types: md(1) | Conf files: dockerfile(1); ```
A/B Experiments ``` vsliv368cf:30146710 vspor879:30202332 vspor708:30202333 vspor363:30204092 vscorecescf:30445987 vscod805cf:30301675 binariesv615:30325510 vsaa593cf:30376535 py29gd2263:31024239 vscaat:30438848 c4g48928:30535728 azure-dev_surveyone:30548225 962ge761:30959799 pythongtdpath:30769146 welcomedialog:30910333 pythonidxpt:30866567 pythonnoceb:30805159 asynctok:30898717 pythontestfixt:30902429 pythonregdiag2:30936856 pythonmypyd1:30879173 pythoncet0:30885854 h48ei257:31000450 pythontbext0:30879054 accentitlementsc:30995553 dsvsc016:30899300 dsvsc017:30899301 dsvsc018:30899302 cppperfnew:31000557 dsvsc020:30976470 pythonait:31006305 chatpanelc:31048052 dsvsc021:30996838 945dj816:31013170 pythoncenvpt:31062603 a69g1124:31058053 dvdeprecationcf:31061161 pythonprt:31056678 dwnewjupytercf:31046870 26j00206:31048877 ```
ptsapralis commented 4 weeks ago

Impact of this issue on memory consumption shown in attached screenshots (before & after launching Visual Studio Code with a single ARM template):

image image

Even after closing VS Code, the "dotnet" stays alive not releasing the memory back to free pool.