一眼揪出抢跑扩展:执行Developer: Show Running Extensions,重点关注Activation Time超1000ms或状态为Activating…/Activated by another extension的插件,并检查When字段中activationEvents是否为"*"或"onStartup"。

怎么一眼揪出抢跑的扩展
VSCode 启动慢,八成是几个扩展在冷启动时就抢着初始化。别靠感觉猜,直接看它自己记的账:Developer: Show Running Extensions。启动完成后立刻按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输进去执行。
重点关注两列:
-
Activation Time (ms)超过 1000 的,基本就是冷启动主力“抢跑者” - 状态长期卡在
Activating…或显示Activated by another extension的,说明它被连带唤醒,得顺藤摸瓜查源头 - 右键插件 →
Extension Details→ 点齿轮图标 → 展开When字段,就能看到它声明的activationEvents:是"*"、"onStartup",还是更精准的"onLanguage:python"
常见真凶包括:gitlens、ms-python.python、dbaeumer.vscode-eslint、esbenp.prettier-vscode、ms-vscode-remote.remote-ssh。
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 扩展若你每天写 Python,设为1(正常加载)反而更稳;而Remote - SSH这类非日常插件才适合2
缓存与清理要分清对象
VSCode 有两类关键缓存直接影响冷启动和热启动耗时:Extension Host 缓存(模块加载路径、已解析的扩展依赖)和 Renderer 进程缓存(UI 布局、侧边栏状态)。它们默认启用,但容易被以下操作破坏:
- 频繁修改
settings.json中的路径类配置(如files.associations、editor.defaultFormatter),触发扩展重激活,清空Extension Host缓存 - 禁用
files.hotExit或window.restoreWindows,导致每次重启都丢弃Renderer状态,UI 重新渲染 - 工作区未标记为
Trusted,强制执行额外安全检查,跳过部分缓存路径 - 清理时只删
Cache目录,别碰User或Extensions主目录:Windows 是%APPDATA%\Code\Cache,macOS 是~/Library/Caches/com.microsoft.VSCode,Linux 是~/.config/Code/Cache
真正影响启动的从来不是“装了多少插件”,而是哪个插件在启动瞬间就拉起进程、扫描文件、建索引——哪怕你只打开了一个 README.md。配置写错一个斜杠,监听就退化成轮询;affinity 设错位置,延迟加载就形同虚设。


















