真正拖慢VSCode的是已激活运行的扩展,需通过“Developer: Show Running Extensions”查看Activation Events含*或onStartup、CPU%持续>5%、内存>100MB的插件,并结合“Developer: Startup Performance”排查Start Delay>300ms者。

怎么看哪个扩展真正在拖慢 VSCode
别依赖“已启用”列表,它只说明插件没被手动关掉,不代表它正在干活。真正吃资源的是那些已经激活、正在运行的扩展。打开命令面板(Ctrl+Shift+P),输入并执行 Developer: Show Running Extensions,重点关注三列:
-
Activation Events列含*或onStartup的——比如esbenp.prettier-vscode、dbaeumer.vscode-eslint、ms-python.python,它们一启动就拉起进程,不管当前开没开对应文件 -
CPU %长期高于 5% 的——不是瞬时峰值,是持续占用 -
Memory MB超过 100MB 的——语言服务类插件(如 Pylance、Ruff)常驻内存高,但若项目根本不用 Python,它就是纯负担
再补一刀:Developer: Startup Performance 会显示每个扩展的 Start Delay,超过 300ms 的基本可以列为优先处理对象。
禁用扩展必须分清作用域和残留配置
点一下“禁用”按钮不等于问题消失。VSCode 里禁用有两层含义:
- 全局禁用:右键插件 →
Disable (Global),所有项目都不加载 - 工作区禁用:命令面板运行
Extensions: Disable Extension in This Workspace,只对当前项目生效,适合多语言混合项目
但更隐蔽的问题在配置里:
-
settings.json中还留着插件专属字段,比如"eslint.enable"、"prettier.requireConfig",即使插件禁用了,这些配置仍参与解析,还可能触发后台检查逻辑 -
keybindings.json里绑了插件命令(如extension.prettier.format),VSCode 启动时会尝试加载对应插件来解析快捷键 -
.vscode/extensions.json里写着"recommendations",一打开该文件夹,VSCode 就弹窗提示安装,点“是”就前功尽弃
所以禁用后务必手动搜索并删掉相关配置项,不能只靠 UI 面板。
用工作区级配置替代全局泛化设置
把所有插件配置都堆在用户级 settings.json(即 ~/Library/Application Support/Code/User/settings.json 或 %APPDATA%\Code\User\settings.json),等于每次打开任意项目都要加载、校验、合并全部规则——哪怕你只是编辑一个 .env 文件。
- 项目专属配置(如
"eslint.options"、"prettier.configPath"、"[typescript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" })全移到项目根目录下的.vscode/settings.json - 用户级
settings.json只保留真正跨项目的通用项:"editor.tabSize"、"files.autoSave"、"workbench.startupEditor" - 顺手加个
files.watcherExclude和search.exclude到工作区配置里,明确排除**/node_modules/**、**/dist/**等目录,避免监听爆炸
这样 VSCode 启动时只需解析少量通用配置,项目打开后再按需加载对应语言规则,冷启动时间能压到 2 秒内。
别忽略扩展路径和宿主进程的底层消耗
扩展不是跑在主界面进程里的,而是由独立的 Extension Host 进程托管。这个设计本意是隔离崩溃,但也带来通信成本:每次补全、格式化、保存,都得跨进程发消息。高频触发的操作(比如每敲一个字符就调用拼写检查)很容易造成输入延迟。
- 某些插件会在后台持续扫描整个工作区,比如旧版
Path Intellisense在路径很深的项目里会反复遍历node_modules,导致 I/O 飙升 - 扩展存储路径本身不影响性能,但如果你手动改过
extensions目录位置(比如挂载到机械盘),而 VSCode 默认从那里加载,就会拖慢初始化 - 禁用后记得执行
Developer: Reload Window,否则部分语言服务进程可能还在后台跑着,Activity Monitor或任务管理器里能看到残留的Code Helper进程
最常被跳过的一步:清理 WorkspaceStorage 缓存。这个目录存的是各工作区的扩展状态快照,损坏后会导致插件反复重载、配置错乱,路径在 ~/Library/Application Support/Code/Workspaces/(macOS)或类似位置,删掉对应项目子目录即可,无需重启整个编辑器。


















