VSCode启动慢主因是扩展在启动时同步激活或工作区配置触发全盘扫描;禁用可疑扩展(如GitLens、Python)、配置files.watcherExclude排除node_modules等目录、断开Remote-SSH连接可快速验证并显著提速。

VSCode 启动慢,八成是某个扩展在启动时卡住,或工作区配置触发了全盘文件扫描。直接禁用可疑扩展、排除 node_modules 目录、关掉远程连接,三步就能验证是否见效。
怎么快速定位拖慢启动的扩展
VSCode 启动卡在 “Activating Extensions” 时,Developer: Show Running Extensions 是唯一靠谱的排查入口。它会实时列出哪些扩展还在激活中,而不是靠猜。
- 启动后立刻按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入并执行该命令 - 观察列表里长期显示 “Activating…” 的扩展,重点关注
GitLens、ESLint、Prettier、ms-python.python、Remote - SSH - 禁用后必须完全退出 VSCode(不是仅关闭窗口),再重启——否则缓存可能掩盖效果
- 若禁用
Remote - SSH后明显变快,说明问题不在本地,而是远程连接阻塞 UI 线程
为什么配置 files.watcherExclude 能立竿见影
VSCode 默认用 chokidar 监视整个工作区文件变动,一旦打开含 node_modules 或 dist 的目录,它就会尝试建立数万级 inotify 句柄(Linux)或反复轮询(macOS),直接拖垮启动和响应速度。
- 在工作区根目录的
.vscode/settings.json中添加:"files.watcherExclude": { "**/node_modules/**": true, "**/dist/**": true, "**/.git/**": true, "**/build/**": true } - macOS 用户若仍卡顿,可临时加一行:
"files.useExperimentalFileWatcher": false - 切勿把用户主目录或磁盘根目录作为工作区打开——这等于让 VSCode 扫描整个系统
如何让 Python / Prettier 这类扩展不抢在启动时加载
这类扩展默认声明 onStartup 或通配符 * 激活事件,一启动就强制初始化语言服务器,但你可能只在打开 .py 文件时才需要它。
- 在用户
settings.json中配置extensions.experimental.affinity:"extensions.experimental.affinity": { "ms-python.python": 2, "esbenp.prettier-vscode": 2 } - 数字
2表示“仅在关联文件打开或命令触发时加载”,不是启动即载入 - 注意:该配置对旧版扩展(如某些未适配 VSCode 1.86+ 的插件)无效,需确认扩展页的 Activation Events 字段是否支持条件触发
- 如果用了 Remote - SSH,还可配合
"remote.extensionKind"把扩展指定为["workspace"],彻底隔离本地启动流程
用 code --disable-extensions 验证是不是扩展惹的祸
这是最干净的诊断手段——跳过所有扩展、所有用户设置、所有工作区配置,只跑一个空壳 VSCode。如果这时启动飞快,那问题 100% 出在扩展或自定义配置上。
- 先完全退出 VSCode(macOS 上要
Cmd+Q,不能只关窗口) - 终端执行:
code --disable-extensions --prof-startup,它会生成一份启动性能报告,保存在file://路径下 - 报告里重点看
Extension Activation和Startup Timings区域,哪个扩展耗时最长一目了然 - 别用
--no-sandbox做常规方案,它只是诊断辅助项,长期禁用会削弱安全边界
真正难处理的是那些没暴露 Activation Events、又在 activate() 函数里偷偷做网络请求或同步读取大文件的扩展——它们不会出现在 “Activating…” 列表里,却能把启动拖到 10 秒以上。这种只能靠逐个禁用+冷启动测试来揪出。


















