VSCode 启动缓慢可通过禁用非必要扩展、启用延迟加载、精简工作区配置、使用轻量启动模式及调整渲染器策略解决。具体包括:禁用ESLint等可疑扩展;在settings.json中为python、prettier设置affinity为2;临时重命名.vscode文件夹定位问题配置;运行code --disable-extensions --prof-startup生成性能报告;关闭沙箱并启用原生窗口以优化多窗口内存占用。

如果您发现 VSCode 启动缓慢,响应迟滞,可能是由于扩展加载、工作区配置或系统资源分配导致的性能瓶颈。以下是诊断与解决此问题的具体步骤:
本文运行环境:MacBook Pro,macOS Sequoia。
一、禁用非必要扩展
VSCode 启动时会初始化已启用的全部扩展,部分扩展(尤其是语言服务器类或实时分析类)会显著延长启动时间。禁用暂不使用的扩展可快速验证其影响。
1、启动 VSCode 并按下 Cmd+Shift+P 打开命令面板。
2、输入并选择 Extensions: Show Installed Extensions。
3、浏览列表,右键点击疑似拖慢启动的扩展(如 ESLint、Prettier、Python、GitLens),选择 Disable (Workspace) 或 Disable (Global)。
4、完全退出 VSCode,重新启动并观察启动耗时变化。
二、启用延迟加载扩展
VSCode 支持基于事件触发的扩展激活机制(activationEvents),但部分扩展未正确声明,导致在启动时强制加载。可通过修改用户设置启用更严格的延迟策略。
1、打开命令面板(Cmd+Shift+P),执行 Preferences: Open Settings (JSON)。
2、在 settings.json 中添加以下配置项:
"extensions.experimental.affinity": { "ms-python.python": 2, "esbenp.prettier-vscode": 2 }
3、保存文件后重启 VSCode。数字 2 表示该扩展仅在关联文件打开或特定命令触发时加载,而非启动即载入。
三、精简工作区配置
大型工作区(尤其是含 .vscode/settings.json、tasks.json、launch.json 的多根工作区)会触发额外的初始化逻辑,增加解析与校验开销。
1、关闭当前工作区,使用 File → Open Folder… 单独打开目标项目根目录(避免打开父级包含多个子项目的文件夹)。
芒果系统GSHOP 纯静态商城系统,你还在为商城的优化而苦恼?GSHOP是全站纯静态商城系统,一键seo优化功能解决seo问题,自定义URL链接解决商城同质化问题;多页面显示:动态页、伪静态页面、纯静态页面增加收录,提升网站权重,提升流量等。安全稳定、功能强大的商城系统。1、芒果商城系统基于 php5.0开发,企业级应用。2、产品功能Ajax设计,响应速度更快,购物体验更好。3、全新密钥存放机制,
2、在项目根目录下检查是否存在 .vscode 文件夹;若存在,临时重命名为 .vscode.bak。
3、重启 VSCode 并打开该文件夹,对比启动速度。若明显提升,逐个恢复 .vscode.bak 中的文件以定位问题配置。
四、切换为轻量启动模式
VSCode 提供 --disable-extensions 和 --no-sandbox 启动参数,可用于排除扩展与沙箱机制干扰,同时生成启动性能分析报告。
1、在终端中执行:code --disable-extensions --prof-startup。
2、等待 VSCode 完全启动后立即关闭。
3、终端将输出类似 Startup performance was saved to /var/folders/.../exthost-startup.txt 的路径提示。
4、使用 VSCode 打开该 .txt 文件,查看各阶段耗时(如 “Extension activation”、“Renderer startup”)。
五、调整渲染器进程策略
VSCode 默认为每个窗口分配独立渲染器进程,多窗口场景下易引发内存竞争。限制渲染器复用可减少初始化开销。
1、打开命令面板(Cmd+Shift+P),执行 Developer: Toggle Developer Tools。
2、切换至 Console 标签页,输入并执行:location.reload(true) 确保环境纯净。
3、再次打开命令面板,执行 Preferences: Open Settings (JSON)。
4、添加配置:"window.experimental.useSandbox": false 与 "window.experimental.useNativeWindow": true。









