actboy168 / vscode-tasks

MIT License
37 stars 14 forks source link

Makes git repos loading very slow #42

Open yajo opened 1 year ago

yajo commented 1 year ago

Type: Performance Issue

When this extension is enabled, loading a code workspace with many repos becomes way slower. I don't think it should impact so much in load time; there's probably some bottleneck.

Extension version: 0.13.2 VS Code version: Code 1.77.3 (704ed70d4fd1c6bd6342c436f1ede30d1cff4710, 2023-04-12T09:16:52.732Z) OS version: Linux x64 6.2.9-300.fc38.x86_64 Modes: Sandboxed: No

System Info |Item|Value| |---|---| |CPUs|AMD Ryzen 7 5700U with Radeon Graphics (16 x 4046)| |GPU Status|2d_canvas: enabled
canvas_oop_rasterization: disabled_off
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_renderer: enabled_on
video_decode: disabled_software
video_encode: disabled_software
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: disabled_off| |Load (avg)|4, 3, 3| |Memory (System)|14.99GB (8.55GB free)| |Process Argv|--unity-launch --crash-reporter-id e128b671-8216-478b-b40b-73378743f4d6| |Screen Reader|no| |VM|0%| |DESKTOP_SESSION|gnome| |XDG_CURRENT_DESKTOP|GNOME| |XDG_SESSION_DESKTOP|gnome| |XDG_SESSION_TYPE|wayland|
Process Info ``` CPU % Mem MB PID Process 0 169 4064 code main 0 31 4132 zygote 0 154 4306 gpu-process 0 31 4133 zygote 0 0 4145 zygote 0 77 267307 window [4] (Notificador de problemas) 0 61 4375 utility-network-service 0 399 4407 window [1] (doodba.test16-odoo (área de trabajo) - Visual Studio Code) 0 107 4669 shared-process 0 77 4732 ptyHost 0 0 267334 /usr/bin/ps -ax -o pid=,ppid=,pcpu=,pmem=,command= 0 107 261863 fileWatcher [1] 3 338 261874 extensionHost [1] 0 123 262839 electron-nodejs (/usr/share/code/code --ms-enable-electron-run-as-node /var/home/yajo/.vscode/extensions/streetsidesoftware.code-spell-checker-2.20.4/packages/_server/dist/main.js --node-ipc --clientProcessId=261874) 0 46 262869 /var/home/yajo/.nix-profile/bin/python3 /var/home/yajo/.vscode/extensions/ms-python.python-2023.6.1/pythonFiles/run-jedi-language-server.py 0 61 262875 electron-nodejs (/usr/share/code/code --ms-enable-electron-run-as-node /var/home/yajo/.vscode/extensions/ms-azuretools.vscode-docker-1.25.0/dist/dockerfile-language-server-nodejs/lib/server.js --node-ipc --node-ipc --clientProcessId=261874) 0 61 262876 electron-nodejs (/usr/share/code/code --ms-enable-electron-run-as-node /var/home/yajo/.vscode/extensions/ms-azuretools.vscode-docker-1.25.0/dist/compose-language-service/lib/server.js --node-ipc --node-ipc --clientProcessId=261874) 0 46 266281 /var/home/yajo/.nix-profile/bin/python3 /var/home/yajo/.vscode/extensions/ms-python.black-formatter-2023.2.0/bundled/tool/lsp_server.py 0 0 267083 git fetch 0 0 267084 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/account-analytic.git 0 0 267085 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/account-analytic.git 0 0 267087 git fetch 0 0 267088 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/account-financial-reporting.git 0 0 267089 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/account-financial-reporting.git 0 0 267091 git fetch 0 0 267092 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/account-financial-tools.git 0 0 267093 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/account-financial-tools.git 0 0 267095 git fetch 0 0 267096 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/account-invoicing.git 0 0 267097 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/account-invoicing.git 0 0 267099 git fetch 0 0 267100 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/account-payment.git 0 0 267101 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/account-payment.git 0 0 267103 git fetch 0 0 267104 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/bank-payment.git 0 0 267105 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/bank-payment.git 0 0 267107 git fetch 0 0 267108 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/bank-statement-import.git 0 0 267109 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/bank-statement-import.git 0 0 267111 git fetch 0 0 267112 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/community-data-files.git 0 0 267113 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/community-data-files.git 0 0 267115 git fetch 0 0 267116 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/crm.git 0 0 267117 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/crm.git 0 0 267119 git fetch 0 0 267120 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/design-themes.git 0 0 267121 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/design-themes.git 0 0 267123 git fetch 0 0 267124 /usr/libexec/git-core/git remote-https moduon-readonly https://bot:glpat-4n8smaxTc3HMNypG4xmE@gitlab.moduon.team/moduon/forks/enterprise.git 0 0 267125 /usr/libexec/git-core/git-remote-https moduon-readonly https://bot:glpat-4n8smaxTc3HMNypG4xmE@gitlab.moduon.team/moduon/forks/enterprise.git 0 0 267126 git fetch 0 0 267128 /usr/libexec/git-core/git remote-https oca https://github.com/OCA/hr.git 0 0 267129 /usr/libexec/git-core/git-remote-https oca https://github.com/OCA/hr.git 0 0 267131 git fetch 0 0 267132 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/l10n-spain.git 0 0 267133 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/l10n-spain.git 0 0 267135 git fetch 0 0 267136 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/mis-builder.git 0 0 267137 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/mis-builder.git 0 0 267139 git fetch 0 0 267140 /usr/libexec/git-core/git remote-https origin https://gitlab.com/moduon/moduon-odoo-addons.git 0 0 267141 /usr/libexec/git-core/git-remote-https origin https://gitlab.com/moduon/moduon-odoo-addons.git 0 0 267143 git fetch 0 0 267144 /usr/libexec/git-core/git remote-https moduon-readonly https://bot:glpat-8x3U_u29E6rmhByk3ny8@gitlab.moduon.team/moduon/moduon-odoo-private-addons.git 0 0 267145 /usr/libexec/git-core/git-remote-https moduon-readonly https://bot:glpat-8x3U_u29E6rmhByk3ny8@gitlab.moduon.team/moduon/moduon-odoo-private-addons.git 0 0 267147 git fetch 0 0 267148 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/multi-company.git 0 0 267149 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/multi-company.git 0 0 267151 git fetch 0 0 267152 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/partner-contact.git 0 0 267153 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/partner-contact.git 0 0 267155 git fetch 0 0 267156 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/project.git 0 0 267157 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/project.git 0 0 267159 git fetch 0 0 267160 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/purchase-workflow.git 0 0 267161 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/purchase-workflow.git 0 0 267163 git fetch 0 0 267164 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/queue.git 0 0 267165 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/queue.git 0 0 267167 git fetch 0 0 267168 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/reporting-engine.git 0 0 267169 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/reporting-engine.git 0 0 267171 git fetch 0 0 267172 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/sale-workflow.git 0 0 267173 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/sale-workflow.git 0 0 267175 git fetch 0 0 267176 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/sale-workflow.git 0 0 267177 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/sale-workflow.git 0 0 267179 git fetch 0 0 267180 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/server-brand.git 0 0 267181 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/server-brand.git 0 0 267183 git fetch 0 0 267184 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/server-tools.git 0 0 267185 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/server-tools.git 0 0 267187 git fetch 0 0 267188 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/server-ux.git 0 0 267189 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/server-ux.git 0 0 267191 git fetch 0 0 267192 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/social.git 0 0 267193 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/social.git 0 0 267195 git fetch 0 0 267196 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/stock-logistics-workflow.git 0 0 267197 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/stock-logistics-workflow.git 0 0 267199 git fetch 0 0 267200 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/web.git 0 0 267201 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/web.git 0 0 267203 git fetch 0 0 267204 /usr/libexec/git-core/git remote-https origin https://github.com/moduon/odoo.git 0 0 267205 /usr/libexec/git-core/git-remote-https origin https://github.com/moduon/odoo.git 0 0 267206 git fetch 0 0 267208 /usr/bin/ssh -o SendEnv=GIT_PROTOCOL -p 30022 git@gitlab.moduon.team git-upload-pack '/moduon/customer-projects/test16-odoo.git' ```
Workspace Info ``` | Window (doodba.test16-odoo (área de trabajo) - Visual Studio Code) | Folder (account-analytic): 116 files | File types: po(30) py(19) rst(9) yml(6) xml(5) pot(2) png(2) html(2) | editorconfig(1) flake8(1) | Conf files: github-actions(3) | Folder (account-financial-reporting): 186 files | File types: py(51) po(31) xml(26) rst(9) yml(6) png(3) pot(2) csv(2) | html(2) js(2) | Conf files: github-actions(3) | Folder (account-financial-tools): 850 files | File types: po(338) py(128) rst(63) xml(58) png(22) pot(14) html(14) | csv(7) yml(6) txt(2) | Conf files: github-actions(3) | Folder (account-invoicing): 695 files | File types: po(410) py(69) rst(39) xml(14) pot(9) png(9) html(9) yml(6) | csv(2) editorconfig(1) | Conf files: github-actions(3) | Folder (account-payment): 179 files | File types: po(91) py(15) rst(11) yml(6) xml(3) pot(2) png(2) html(2) | editorconfig(1) flake8(1) | Conf files: github-actions(3) | Folder (bank-payment): 405 files | File types: po(130) py(82) xml(38) rst(27) yml(6) pot(6) png(6) html(6) | csv(3) editorconfig(1) | Conf files: github-actions(3) | Folder (bank-statement-import): 21 files | File types: yml(6) editorconfig(1) flake8(1) gitignore(1) cfg(1) | yaml(1) pylintrc(1) pylintrc-mandatory(1) md(1) | setuptools-odoo-make-default-ignore(1) | Conf files: github-actions(3) | Folder (community-data-files): 214 files | File types: py(44) rst(27) xml(13) po(12) yml(6) pot(6) png(6) html(6) | txt(2) editorconfig(1) | Conf files: github-actions(3) | Folder (crm): 224 files | File types: po(50) py(37) rst(21) xml(14) yml(6) pot(5) png(5) html(5) | editorconfig(1) flake8(1) | Conf files: github-actions(3) | Folder (design-themes): 2708 files | File types: jpg(1139) xml(374) scss(167) py(126) po(120) svg(75) | png(72) js(37) pot(28) html(25) | Conf files: | Folder (enterprise): more than 20523 files | File types: po(10474) py(3162) xml(1887) js(643) pot(251) png(146) | csv(132) svg(122) scss(116) xslt(42) | Conf files: | Folder (hr): 377 files | File types: py(78) po(55) rst(38) xml(25) pot(10) png(10) html(10) | yml(6) csv(4) txt(2) | Conf files: github-actions(3) | Folder (l10n-spain): 1275 files | File types: po(249) py(241) xml(161) rst(107) csv(29) png(26) pot(22) | html(20) json(20) xsd(19) | Conf files: github-actions(3) | Folder (mis-builder): 275 files | File types: py(63) png(34) po(33) rst(29) xml(25) yml(6) gitignore(4) | html(4) md(3) pot(3) | Conf files: github-actions(3) makefile(1) | Folder (moduon-odoo-addons): 315 files | File types: py(80) xml(33) rst(30) png(10) yaml(8) html(8) pot(7) po(7) | txt(6) yml(5) | Conf files: dockerfile(1) | Folder (moduon-odoo-private-addons): 165 files | File types: py(35) rst(19) xml(11) yaml(8) txt(6) png(6) yml(5) html(5) | md(3) empty(3) | Conf files: dockerfile(1) | Folder (multi-company): 127 files | File types: py(26) rst(15) xml(10) yml(6) js(4) po(4) png(2) | editorconfig(1) flake8(1) gitignore(1) | Conf files: github-actions(3) | Folder (partner-contact): 1869 files | File types: po(1001) py(222) rst(125) xml(49) png(43) pot(28) html(28) | csv(7) yml(6) svg(4) | Conf files: github-actions(3) | Folder (project): 489 files | File types: po(165) py(77) rst(40) xml(24) png(14) pot(10) html(10) | yml(6) csv(2) editorconfig(1) | Conf files: github-actions(3) | Folder (purchase-workflow): 892 files | File types: po(272) py(172) rst(86) xml(44) png(26) html(19) pot(18) | yml(6) csv(3) svg(2) | Conf files: github-actions(3) | Folder (queue): 343 files | File types: py(90) rst(34) po(31) xml(26) pot(8) png(8) yml(6) html(6) | csv(4) js(4) | Conf files: github-actions(3) | Folder (reporting-engine): 923 files | File types: po(430) py(128) rst(61) xml(30) png(22) pot(13) html(13) | yml(6) csv(6) js(4) | Conf files: github-actions(3) | Folder (sale-workflow): 826 files | File types: po(386) py(110) rst(63) xml(35) pot(13) png(13) html(13) | yml(6) csv(4) editorconfig(1) | Conf files: github-actions(3) | Folder (sale-workflow-v15): 2601 files | File types: po(772) py(476) rst(251) xml(132) png(76) pot(58) html(57) | csv(17) yml(6) svg(2) | Conf files: github-actions(3) | Folder (server-brand): 109 files | File types: py(18) po(11) rst(9) yml(6) pot(3) png(3) html(3) xml(3) | editorconfig(1) flake8(1) | Conf files: github-actions(3) | Folder (server-tools): 861 files | File types: po(254) py(157) rst(87) xml(27) png(22) pot(18) html(18) | yml(6) csv(6) css(3) | Conf files: github-actions(3) | Folder (server-ux): 544 files | File types: po(200) py(84) rst(39) xml(24) png(22) js(11) pot(8) | html(8) yml(6) csv(3) | Conf files: github-actions(3) | Folder (social): 565 files | File types: po(228) py(95) rst(44) png(15) xml(14) pot(10) html(9) | yml(6) svg(2) csv(2) | Conf files: github-actions(3) | Folder (stock-logistics-workflow): 690 files | File types: py(174) rst(80) po(74) xml(28) pot(21) png(21) html(20) | yml(6) setuptools-odoo-make-default-ignore(2) | txt(2) | Conf files: github-actions(3) | Folder (web): 513 files | File types: rst(56) py(55) po(53) js(32) gif(24) png(22) xml(20) | pot(14) scss(14) html(13) | Conf files: github-actions(3) | Folder (odoo): more than 21341 files | File types: po(9082) py(2879) xml(2207) js(1109) png(458) csv(260) | svg(244) pot(212) scss(201) jpg(93) | Conf files: | Folder (private): 1 files | File types: editorconfig(1) | Conf files: | Folder (test16-odoo): more than 21695 files | File types: po(8320) py(2934) xml(2063) jpg(1156) js(452) pot(256) | scss(252) png(233) rst(209) svg(135) | Conf files: dockerfile(2); ```
A/B Experiments ``` vsliv368:30146709 vsreu685:30147344 python383:30185418 vspor879:30202332 vspor708:30202333 vspor363:30204092 vslsvsres303:30308271 vserr242:30382549 pythontb:30283811 vsjup518:30340749 pythonptprofiler:30281270 vshan820:30294714 vstes263:30335439 vscoreces:30445986 pythondataviewer:30285071 vscod805:30301674 binariesv615:30325510 bridge0708:30335490 bridge0723:30353136 cmake_vspar411:30581797 vsaa593:30376534 pythonvs932:30410667 cppdebug:30492333 vsclangdf:30486550 c4g48928:30535728 dsvsc012:30540252 pynewext54:30695312 azure-dev_surveyone:30548225 nodejswelcome1cf:30587006 3biah626:30602489 pyind779:30671433 89544117:30613380 pythonsymbol12:30671437 a9j8j154:30646983 vsccsb:30705552 azdwalk:30687957 pythonms35:30701012 pythonfmttextcf:30716743 pythonclientmv:30713943 ```
yajo commented 1 year ago

You can see in this video that loading a workspace with 32 git repos goes from 8 to 12 seconds when enabling the extension:

https://user-images.githubusercontent.com/973709/233325744-25d2b5a7-794b-41aa-9a8a-0fb817ab7ae3.mp4

actboy168 commented 1 year ago

I found vscode.tasks.fetchTasks to be very slow. I'm not sure if that 7d0cad3e795700da2e48e8ee8ee88ba46ead7f7f an improvement, but there's very little we can do.