vscode 启动性能分析需用命令行加 --prof-startup 参数启动,启动后自动打开 startup performance 报告;重点查看 extensions 标签页中 activation time >500ms 的扩展,优先禁用(workspace)或延迟加载,并排除 settings.json、remote 扩展、icloud 同步等非扩展因素。

怎么打开 VSCode 的启动性能分析器
VSCode 自带启动性能分析功能,不用装额外工具,关键是要在「还没完全启动完」时触发——等窗口都出来了再点菜单就晚了。最稳的方式是命令行加参数启动:
- macOS / Linux:
code --prof-startup - Windows(PowerShell):
code --prof-startup - Windows(CMD):
code.exe --prof-startup
这会强制 VSCode 启动时全程采集性能数据,并在启动完成后自动打开一个新窗口,显示 Startup Performance 报告。注意:别用快捷方式或 Dock 图标点开,必须走命令行;如果系统 PATH 没配好,得用完整路径,比如 /Applications/Visual Studio Code.app/Contents/Resources/app/bin/code --prof-startup(macOS)。
怎么看哪个扩展拖慢了启动
打开 Startup Performance 页面后,重点看 Extensions 标签页里的 Activation Time 和 Load Time 两列。前者是扩展被激活(即真正开始运行代码)耗时,后者是模块加载时间。真正致命的是高 Activation Time(>500ms)的扩展,尤其是那些一启动就立刻干活的,比如 GitLens、Prettier、ESLint、Python 扩展(尤其带语言服务器预热的)。
-
Activation Time = 0表示该扩展没被激活,不用管 - 看到某扩展
Activation Time超过 800ms,基本可以确定它是瓶颈 - 注意区分「全局启用」和「工作区启用」:有些扩展只在打开特定文件夹时才激活,报告里会标出
workspace或none
示例:你发现 esbenp.prettier-vscode 的 Activation Time 是 1240ms,但它其实只在打开 .js 或 .ts 文件时才需要——那就可以先禁用它,等真写代码时再手动启用。
怎么安全禁用可疑扩展而不影响日常开发
别一股脑全禁,也别直接卸载。VSCode 支持按工作区、按语言、甚至按命令禁用扩展,更细粒度:
- 右键扩展列表里的名字 → 选
Disable (Workspace):只在当前文件夹禁用,不影响其他项目 - 点击扩展右下角齿轮图标 → 选
Extension Settings→ 找到Enablement区域 → 关掉When Enabled下的Start up开关:让它延迟加载,不参与启动竞争 - 某些扩展(如
ms-python.python)提供python.startupModules配置项,设为[]可跳过预热,省下几百毫秒
改完记得重启 VSCode 再跑一次 --prof-startup 对比,看 Startup Time 总耗时有没有明显下降。经常有人禁掉一个扩展后总启动时间只少 50ms,其实是其他扩展还在抢资源——得逐个排查。
为什么禁用后还是慢?几个容易漏掉的点
启动慢不全是扩展的锅。以下几处常被忽略,但影响巨大:
-
settings.json里写了大量"files.associations"或正则匹配规则,尤其匹配**/*这种,会让 VSCode 在启动时扫描整个工作区 - 启用了
Remote - SSH或Dev Containers,但本地没连上远程环境,它会在后台反复重试连接,卡住主线程 - 用户级
keybindings.json里有自定义命令绑定到workbench.action.terminal.sendSequence这类高开销操作,且设为开机执行 - macOS 上用了 iCloud 同步
~/Library/Application Support/Code,导致扩展目录读取变慢(iCloud Drive 会锁文件)
这些地方不会出现在 Startup Performance 的扩展列表里,但会拖慢整体初始化。最简单的验证方式:用 code --disable-extensions --prof-startup 启动,如果秒开,说明确实是扩展问题;如果还慢,就得去翻日志和配置了。











