vscode 启动变慢主因是扩展抢跑和文件监视器被大型目录拖垮,禁用特定插件、正确配置 files.watcherexclude 和 extensions.experimental.affinity 可将冷启动从 4 秒压至 800ms。

VSCode 启动变慢,八成不是电脑性能问题,而是扩展抢跑 + 文件监视器被大型目录拖垮——禁用 gitlens、ms-python.python、dbaeumer.vscode-eslint 这几类插件,再配好 files.watcherExclude 和 extensions.experimental.affinity,冷启动从 4 秒压到 800ms 很常见。
怎么快速定位拖慢启动的扩展
别靠猜,直接看 VSCode 自己记录的实时状态:
- 完全启动后立刻按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入并执行Developer: Show Running Extensions - 重点关注
Activation Time (ms)列:超过1000的基本就是冷启动主力“抢跑者” - 状态长期显示
Activating…或Activated by another extension的,说明它在后台卡住或被连带唤醒 - 右键插件 →
Extension Details→ 点齿轮图标 → 展开When字段,确认其activationEvents是"*"、"onStartup"还是更精准的"onLanguage:python"
files.watcherExclude 配错等于没配
VSCode 默认用 chokidar 监视整个工作区;一旦打开含 node_modules 的项目,它会尝试注册数万级 inotify 句柄(Linux)或反复轮询(macOS),直接拖垮启动和响应速度。这个配置必须写对位置、格式和路径:
- 必须写进项目根目录的
.vscode/settings.json,不能只在 UI 设置界面里填(界面加引号会导致解析失败) - 路径必须带
**/前缀和/**后缀,例如"**/node_modules/**": true;写成"node_modules/": true或"node_modules/**"都无效 - 推荐完整配置:
"**/node_modules/**"、"**/dist/**"、"**/.git/**"、"**/build/**"、"**/__pycache__/**"、"**/venv/**" - macOS 用户若仍卡顿,可临时加一行:
"files.useExperimentalFileWatcher": false
extensions.experimental.affinity 设为 2 才真正延迟加载
像 ms-python.python、esbenp.prettier-vscode 这类扩展,默认声明 onStartup 或 * 激活事件,一启动就强制初始化语言服务器——但你可能只在打开 .py 文件时才需要它。数字 2 表示“仅在首次调用命令或打开匹配文件时加载”,不是启动即载入:
- 必须写进用户级
settings.json(路径如~/Library/Application Support/Code/User/settings.json),不是工作区设置 - 示例配置:
{ "extensions.experimental.affinity": { "ms-python.python": 2, "esbenp.prettier-vscode": 2, "redhat.vscode-yaml": 2 } } - 不要给所有插件都设
2——比如你每天写 Python,ms-python.python设为1(正常加载)反而更稳;而ms-vscode-remote.remote-ssh这类非日常插件才适合2 - 该配置对旧版扩展无效,需确认扩展页的
Activation Events字段是否支持条件触发(2026 年主流扩展已适配)
缓存没清理干净,优化效果会被掩盖
VSCode 有两类关键缓存直接影响启动耗时:Extension Host 缓存(模块加载路径、扩展依赖)和 Renderer 进程缓存(UI 布局、侧边栏状态)。它们容易被以下操作破坏:
- 频繁修改
settings.json中的路径类配置(如files.associations),触发扩展重激活,清空Extension Host缓存 - 禁用
files.hotExit或window.restoreWindows,导致每次重启都丢弃Renderer状态,UI 重新渲染 - 工作区未标记为 Trusted,强制执行额外安全检查,跳过部分缓存路径
- 只清理
Cache目录(如 Windows 的%APPDATA%\Code\Cache),别误删User或Extensions主目录
最易被忽略的是:禁用插件后必须完全退出 VSCode(macOS 用 Cmd+Q,不能只关窗口),否则旧进程残留,缓存未刷新,优化效果不显。











