VSCode 启动快源于精设计而非堆资源:采用轻量架构与分阶段加载,仅初始化核心模块;扩展按 activationEvents 延迟加载;预编译、缓存与状态记忆优化冷启动;Electron 经深度定制反成性能加速器。

VSCode 启动快,不是靠“堆资源”,而是靠“精设计”——它不追求一次性加载所有功能,而是让核心编辑能力在毫秒级就绪,其余一切按需发生。
轻量架构 + 分阶段加载
VSCode 把自身拆成几十个松耦合模块,启动时只加载编辑器内核、文件树、状态栏等最基础部分。像语言服务、调试器、Git 集成这些功能,根本不会阻塞启动流程,而是等你真正打开一个。ts 文件、点下 F5 或点击源码管理图标时,才悄悄初始化。这种“先让你干活,再慢慢配齐 工具”的策略,让用户几乎感觉不到等待。
延迟加载 是默认行为,不是可选项
每个扩展都必须声明 activationEvents,比如"onLanguage:python" 或"onCommand:extension.format"。VSCode 严格按这个规则决定何时加载插件——没打开 Python 文件,Python 插件就不会启动;没运行格式化命令,Prettier 也不会占用内存。这意味着,哪怕你装了 100 个扩展,只要当前工作场景只触发其中 3 个,另外 97 个就全程“休眠”,零资源消耗。
预编译、缓存与状态记忆
VSCode 在安装或更新后,会提前把核心 JS 模块编译为 V8字节 码并缓存;用户关闭窗口时,它会记住打开的标签页、折叠状态、光标位置;再次启动时,直接从缓存读取 + 恢复界面,跳过重复解析和渲染。同时,最近打开的文件列表、工作区配置、甚至部分插件的初始化结果也会被缓存,进一步压缩冷启动时间。
Electron 不是拖累,而是加速器
虽然基于 Electron,但 VSCode 做了大量定制:它禁用 Chromium 中桌面应用用不到的功能(如完整网页沙箱、多进程渲染器),复用 Node.js的高效 I / O 和模块系统,并通过 IPC 精准控制主进程与渲染进程的通信粒度。再加上 Chromium 本身持续优化(如 V8 TurboFan、Skia 渲染提速),VSCode 实际享受到的是现代 浏览器 引擎的底层性能红利,而非被其拖慢。
基本上就这些。它快,是因为从第一天起,就拒绝“全量加载”的惯性思维,把“用户此刻需要什么”刻进了启动逻辑里。不复杂但容易忽略。