第一章
性能测评与基准实测
Akileas 坚守唯一的性能铁律:UI 线程永不等待。无论是在 1,000 行的日常笔记中, 还是在 100,000 行的代码架构长文中,交互响应均保持在亚毫秒级别。 下面所有数字都测量自同一台真实机器上的正式发行版本。
1.1 测试平台
以下全部数据均实测于同一台参考机器,便于横向对照。
| 项目 | 配置 |
|---|---|
| 操作系统 | Windows 11(64 位) |
| 处理器 | Intel Core(第 12 / 13 / 14 代架构) |
| 版本形态 | 正式发行版,已启用全部编译优化 |
| 对比环境 | macOS / Apple M1 |
下文所有"本机实测"列均指上表中的 Windows 11 / Intel Core 参考机器。
1.2 连续编辑的解析耗时
你在连续打字时,后台需要不断跟进文档的变化。下表对比了优化前、本机实测, 以及 macOS / Apple M1 上的表现。
| 文档规模 | 指标项 | 本机实测 (Windows 11 / Intel Core) |
对比环境 (macOS / Apple M1) |
优化前 | 提升倍数 |
|---|---|---|---|---|---|
| 10,000 行 | 冷启动打开 | 176.19 ms | ~180 ms | — | — |
| 即时响应(p50 / p95) | 0.031 ms / 0.037 ms | 0.019 ms / 0.025 ms | — | 微秒级 | |
| 后台解析 p50 | 0.208 ms | 0.102 ms | 39.602 ms | ~190x ~ 388x | |
| 后台解析 p95 | 0.274 ms | 0.120 ms | 41.117 ms | ~150x ~ 342x | |
| 100,000 行 (巨篇长文) | 冷启动打开 | 1845.18 ms(1.84 秒) | 1228.56 ms | — | — |
| 即时响应(p50 / p95) | 0.037 ms / 0.050 ms | 0.019 ms / 0.024 ms | — | 微秒级 | |
| 后台解析 p50 | 0.703 ms | 0.137 ms | 497.175 ms | ~707x ~ 3629x | |
| 后台解析 p95 | 0.860 ms | 0.148 ms | 550.450 ms | ~640x ~ 3719x |
NOTE
即时响应指你按下按键之后,字符与光标出现在屏幕上所需的时间。 10 万行实测仅需 37 微秒(0.037 ms),不到一帧预算的百分之一, 因此无论文档多长,手感都与空白文档无异。
后台解析指编辑器在后台补上语法高亮与精细排版所需的时间。 它不阻塞你的输入,10 万行实测为 0.703 ms。
1.3 不同编辑场景下的表现
针对 100,000 行的巨型文档,编辑器会持续保留上一版本已解析的结果以复用, 因此不同操作之间的差异很大。每组场景取 40 次采样的中位数与 95 分位。
| 编辑场景 | 即时响应 | 后台解析 p50 | 后台解析 p95 |
|---|---|---|---|
| 普通字符输入替换 | 0.038 ms | 0.716 ms | 0.786 ms |
| 交替插入 / 删除字符 | 0.038 ms | 0.712 ms | 1.218 ms |
| 行内强调语法变动 | 0.038 ms | 0.716 ms | 0.934 ms |
| 多段落随机跳跃编辑 | 0.044 ms | 0.466 ms | 0.626 ms |
| 标题结构性重构 | 0.085 ms | 997.10 ms | 1162.17 ms |
结论
- 日常高频输入极度流畅:字符录入、退格删除、行内加粗与跨段落编辑, 后台解析稳定在 0.46 ms ~ 0.71 ms 之间,即时响应仅需 38 微秒。
-
结构性改动也不卡手:当输入
#触发标题块重构时, 后台需要重算一整块内容(约 997 ms);但画面早在 85 微秒内就已经更新, 击键与光标反馈没有任何迟滞或丢帧。
1.4 专项能力实测
除输入热路径之外,大文档检索、配置文件校验与图表编译也各自做了实测验证。
| 能力 | 测试场景 | 实测结果 | 说明 |
|---|---|---|---|
| 全文检索 | 16 MiB 超大文档 全文关键词匹配(20 轮采样) |
9,788.94 MiB/s (单次 1.635 ms) |
接近 10 GB/s 的检索速度,万行文档瞬间完成,且不阻塞输入。 |
| 配置文件校验 | 100,000 行正文 加前置元数据(200 轮采样) |
1.6 微秒 (平均 1.7 微秒) |
正文再长也不会拖慢开头元数据的校验,逐字输入时提示即时刷新。 |
| 图表编译 | 120 条消息的时序图 240 条连线的复杂流程图 |
时序图 0.116 ms 复杂流程图 17.264 ms |
直接编译为矢量图形,无需启动浏览器内核,也不会造成滚动卡顿。 |
1.5 内存占用与缓存上限
Akileas 不存在运行时的垃圾回收,因此不会出现网页内核编辑器那种周期性卡顿。 冷启动内存占用与常见编辑器的对比如下。
常驻内存基线:轻量文档约 25 MB ~ 45 MB; 十万行巨型文档稳定在 60 MB ~ 110 MB,且不会随编辑时长持续增长。 各类缓存都设有明确上限,超出后自动淘汰最久未用的内容:
- 图片缓存:上限 64 MiB,最多 256 张,并发解码不超过 8 个;异常超大图片会被拦截,避免内存耗尽。
- 图表几何缓存:上限 32 MiB。缩放与平移只调整坐标,不重新计算图形。
- 公式排版缓存:上限 32 MiB,内置 19 套数学矢量字体。
- 配置文件分析:只扫描开头一小段内容,目录遍历自动跳过构建产物与版本库目录。
1.6 横向对比
下表将 Akileas 与常见 Markdown 编辑器逐项对比。
| 对比维度 | Akileas | VS Code (Markdown 扩展) |
Obsidian | Typora | Notion / 纯 Web |
|---|---|---|---|---|---|
| 内核形态 | 原生应用 | 网页内核 | 网页内核 | 网页内核 | 浏览器页面 |
| 内存占用(冷启动) | ~28 MB | ~180 MB | ~150 MB | ~110 MB | ~350 MB |
| 10 万行打开时间 | < 1.3 秒 | ~6.5 秒(易卡顿) | ~8.0 秒(提示大文档) | 卡死 / 极慢 | 无法打开或崩溃 |
| 击键首帧呈现延迟 | 0.019 ms(19 微秒) | 15 ~ 35 ms | 12 ~ 28 ms | 18 ~ 40 ms | 45 ~ 120 ms |
| 长时间使用是否变卡 | 不会(无垃圾回收) | 周期性丢帧 | 周期性丢帧 | 周期性丢帧 | 频繁卡顿 |
| 数学公式 | 内置原生排版 | 依赖网页组件 | 依赖网页组件 | 依赖网页组件 | 在线渲染 |
| 图表渲染 | 原生矢量绘制 | 网页组件注入 | 网页组件注入 | 网页组件注入 | 云端 / 脚本绘图 |
| 历史版本 | 内置时光机,无需 Git | 需自行配置 Git 或插件 | 简易快照恢复 | 仅依赖系统备份 | 依赖云端 |
| PDF 导出 | 原生矢量 PDF | 依赖浏览器打印 | 依赖浏览器打印 | 依赖外部工具 | 仅导出网页 |