sublime text 启动快源于单进程c++原生设计与惰性加载机制,冷启动常低于100ms;vs code因electron多进程模型导致启动慢一个数量级,内存占用高、初始化开销大。

Sublime Text 启动快,不是靠“优化技巧”,而是它从设计上就拒绝加载你暂时用不到的东西——冷启动通常在 100ms 内完成,哪怕装了 20 个插件,只要没触发,就等于没存在。
为什么 Sublime 启动比 VS Code / Atom 快一个数量级
核心差异在进程模型和语言层:VS Code 是 Electron 应用,一启动就得拉起 Chromium 渲染进程 + Node.js 主进程 + 多个插件宿主进程,光初始化就要几百 MB 内存和数百毫秒;Sublime 是单进程 C++ 原生程序,直接调用 mmap() 映射二进制、用 OpenGL 渲染界面,没有 JS 解析、没有 DOM 构建、没有沙箱通信开销。
实操中能感知到的典型现象:
- 在 macOS 上执行
time subl --no-sandbox --command "exit",真实耗时常低于0.03s;VS Code 对应命令(code --disable-extensions --wait --file-write /dev/null)通常 >0.8s - Windows 上首次启动 Sublime,任务管理器里
sublime_text.exe内存占用约15–25MB;VS Code 同场景下常达300MB+ - 插件不激活 = 不加载:比如
Package Control只在调出命令面板时才初始化,SideBarEnhancements在右键菜单弹出前完全不占 CPU
哪些配置会悄悄拖慢 Sublime 的启动速度
用户设置里看似无害的几行,可能让启动多花 300ms —— 尤其当 SSD 有延迟或杀毒软件 hook 了文件读取时:
-
"index_files": true:默认开启,会扫描整个项目目录构建符号索引,首次打开含node_modules的项目时卡顿明显 -
"folder_exclude_patterns": []留空:导致 Sublime 试图索引所有子目录,包括.git、build/、dist/ -
"ignored_packages": []没禁用冗余插件:比如同时启用Emmet和AutoFileName,二者都会监听on_query_completions事件,叠加响应延迟 - 自定义
plugin_host路径指向网络盘或加密卷:Sublime 启动时会校验插件签名,路径不可达会导致超时等待
推荐最小化启动配置(放在 Preferences → Settings 用户侧):
一款AI工具,主要用于Monitor and clean up invalid Codex authentication files in CPA. Check quota status, disable files returning 401 errors, and perform dual verification before deletion.,适合需要提升相关任务效率的用户。
{
"index_files": false,
"folder_exclude_patterns": [".git", "node_modules", "__pycache__", "venv", ".mypy_cache"],
"ignored_packages": ["Vintage", "SFTP", "Markdown Preview"],
"atomic_save": true
}
插件加载时机如何影响“感知启动速度”
Sublime 的插件是惰性加载的,但“惰性”有前提:插件必须声明正确的 sublime-plugin 元数据,且不主动在 plugin_loaded() 里做重操作。常见翻车点:
- 插件在
plugin_loaded()中调用urllib.request.urlopen()或读取大配置文件,阻塞主线程 - 使用
sublime.set_timeout()延迟执行却未设超时,导致后台任务堆积 - 监听
on_activated却未过滤窗口类型,每次切 Tab 都触发全文本分析
验证方式:启动后立刻按 Ctrl+Shift+P,输入 Package Control: List Packages,观察列表弹出是否卡顿;若卡,说明某个插件的 plugin_loaded() 正在同步阻塞。
macOS 上为何感觉更快?不只是心理作用
macOS 版 Sublime 默认启用 GPU 加速渲染(通过 Core Graphics + Metal),且字体渲染跳过 hinting 直接走亚像素抗锯齿,滚动帧率稳定在 60fps;而 Windows 版依赖 GDI,某些远程桌面或高 DPI 缩放场景下会退化为软件渲染,掉帧明显。
更关键的是系统级差异:
- macOS 的
mmap()性能更优,大文件映射延迟更低 - Sublime 在 macOS 上自动禁用部分动画(如标签页滑入),减少合成器负担
- Windows Defender 实时扫描
Packages/目录下的 Python 插件字节码(.pyc),造成首次加载延迟
真正容易被忽略的一点:Sublime 的“快”是分层的——启动快 ≠ 打开任意文件都快。它快的前提是你没把它当 IDE 用。一旦打开 2GB 日志还开着语法高亮和自动换行,再快的内核也救不了。该关的必须关,不是靠“等它缓过来”。










