VS Code 启动慢主因是配置文件加载冗余或扩展阻塞。需按顺序检查 user settings.json、keybindings.json、snippets/ 和 extensions/ 中 package.json 的 activationEvents;用 --prof-startup、Developer: Startup Performance 和开发者工具定位耗时环节;通过精简配置、延迟加载、分层 profiles 等策略优化。

VS Code 启动慢,往往不是硬件问题,而是配置文件加载过程中的冗余或阻塞导致的。关键在于识别哪些配置项或扩展在启动时被同步读取、解析或执行,从而拖慢初始化速度。
检查启动阶段的配置加载顺序
VS Code 启动时会按固定顺序加载以下配置文件,每一步都可能成为瓶颈:
-
user settings.json:用户级设置,路径通常为
~/.config/Code/User/settings.json(Linux/macOS)或%APPDATA%\Code\User\settings.json(Windows)。过大或含复杂 JSON Schema 校验的配置会延缓解析。 - keybindings.json 和 snippets/ 目录:大量自定义快捷键或代码片段(尤其含正则或嵌套逻辑)会在启动时预加载。
- extensions/ 中已启用的扩展的 package.json 和 activationEvents:即使未真正激活,部分扩展会在启动时注册监听器或预解析贡献点(如 commands、views),影响冷启动。
用内置工具定位耗时环节
无需第三方插件,VS Code 自带诊断能力:
- 启动时加参数
code --prof-startup,退出后生成cpu-*.json文件,用chrome://tracing打开分析主线程各阶段耗时。 - 命令面板输入 Developer: Startup Performance,直接查看各组件(配置加载、扩展激活、服务初始化)的毫秒级耗时。
- 打开开发者工具(
Help → Toggle Developer Tools),切换到 Console 标签页,搜索starting up或load相关日志,观察哪些模块加载延迟明显。
精简配置与延迟加载策略
优化不是删功能,而是让非必要项“不抢跑”:
- 把高频但非启动必需的设置(如特定语言格式化选项、主题细节)移到
language-specific settings中,避免全局解析负担。 - 禁用所有扩展后重启,逐个启用并测启动时间,重点关注
activationEvents包含"*"或"onStartupFinished"的扩展——它们几乎必然参与启动流程。 - 将自定义 snippets 按语言拆分到对应语言子目录(如
javascript/),VS Code 只在对应语言环境激活时加载,而非启动即载入全部。 - 避免在
settings.json中使用editor.quickSuggestions等依赖语言服务器状态的动态值;改用静态布尔值,减少启动期等待。
进阶:配置文件分层与条件加载
对多环境用户(如工作/个人/学习),可借助 VS Code 的 profiles 功能隔离配置:
- 新建 profile(
Ctrl+Shift+P → Profiles: Create Profile),每个 profile 独立settings.json和扩展集,避免单一大配置文件反复解析。 - 用
settings.json中的"workbench.startupEditor": "none"关闭启动时默认打开上次编辑器,减少 UI 初始化压力。 - 禁用
"files.autoSave": "onFocusChange"类自动保存策略,改为"afterDelay",避免启动瞬间触发文件系统写入竞争。
基本上就这些。启动性能优化本质是“减法思维”——不是堆更多插件或加速补丁,而是看清 VS Code 启动链路上哪些配置真正在拖后腿,然后精准剪枝。











