VSCode启动慢主因是插件激活、文件监视器过度扫描、缓存堆积、远程连接阻塞及配置叠加;应依次用Developer: Show Running Extensions定位插件、配置files.watcherExclude排除目录、清理Cache而非UserData、断开远程连接测试,并逐项验证优化。

插件激活拖慢启动?先定位再禁用
VSCode 启动卡在 “Activating Extensions” 几乎全是插件惹的祸,尤其是那些声明了 onStartup、onStartupFinished 或通配符 * 激活事件的扩展。它们一开就执行网络请求、扫描整个工作区、甚至启动语言服务器进程。
实操建议:
- 启动后立刻按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Developer: Show Running Extensions,看哪些长期显示 “Activating…” - 重点关注
GitLens、ESLint、Prettier、Remote - SSH和各类语言包(如ms-python.python) - 不要直接全禁用——先关掉非当前项目必需的;比如 Python 项目外禁用 Python 扩展,可避免 LSP 进程白占内存
- 右键扩展 →
Disable (Workspace)比全局禁用更安全,不影响其他项目
文件监视器(chokidar)吃光 CPU?必须排除无关目录
VSCode 默认监听整个工作区文件变化,一旦打开含 node_modules、dist、.git 的大型项目,chokidar 就会持续扫描,导致启动卡顿、搜索变慢、甚至风扇狂转。
实操建议:
- 在项目根目录的
.vscode/settings.json中添加:"files.watcherExclude": { "**/node_modules/**": true, "**/dist/**": true, "**/.git/**": true, "**/build/**": true, "**/logs/**": true } - macOS 用户若仍卡顿,可临时加一行:
"files.useExperimentalFileWatcher": false - 绝对不要把
/、/Users/xxx或C:\当工作区打开——这等于命令 VSCode 全盘监听
缓存堆积引发加载失败?只删 Cache,别碰 UserData
VSCode 的 Cache 目录长期不清理会导致扩展加载失败、UI 渲染异常、甚至启动后黑屏几秒。但很多人误删 UserData 或 Extensions 主目录,结果丢失全部设置和插件。
实操建议:
- 确认 VSCode 已完全退出(包括托盘图标),再删除对应路径下的
Cache文件夹:
– Windows:%APPDATA%\Code\Cache
– macOS:~/Library/Caches/com.microsoft.VSCode
– Linux:~/.config/Code/Cache - 插件更新失败或灰显?进
~/.vscode/extensions/(Win 是%USERPROFILE%\.vscode\extensions\),只删带-cache后缀的子文件夹(如ms-python.python-2024.8.0-cache) - 想快速验证是否缓存问题?终端运行:
code --disable-extensions --user-data-dir /tmp/vscode-test(Linux/macOS)或code --disable-extensions --user-data-dir C:\temp\vscode-test(Windows)
远程开发连不上就卡住?断开再测本地速度
很多人以为“VSCode 启动慢”,实际是 Remote - SSH 或 WSL 扩展在后台反复尝试连接远端,阻塞 UI 线程。日志里看不到报错,但界面就是不动。
实操建议:
- 先断开远程连接(
Remote-SSH: Close Remote Connection),用纯本地窗口测试启动时间 - 必须用远程时,检查
~/.ssh/config是否有冗余ProxyCommand或过短的ConnectTimeout - WSL 用户务必把项目放在
/home/xxx/(即\wsl$\Ubuntu\home\xxx\),别放/mnt/c/下——Windows 文件系统 IO 延迟极高 - 加配置项:
"remote.SSH.enableDynamicForwarding": false,能减少一次 SSH 隧道协商
真正影响启动速度的,往往不是某个开关没开,而是几个小配置叠加:一个 onStartup 插件 + 未排除的 node_modules + 远程连接中 + 缓存老化。逐项关掉、单独验证,比堆一堆优化技巧更有效。特别是 Developer: Show Running Extensions 这个命令,它不解决所有问题,但能让你一眼看到谁在拖后腿。











