第一章

性能测评与基准实测

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 ms0.019 ms / 0.025 ms—微秒级
后台解析 p500.208 ms0.102 ms39.602 ms~190x ~ 388x
后台解析 p950.274 ms0.120 ms41.117 ms~150x ~ 342x
100,000 行
(巨篇长文)
冷启动打开1845.18 ms(1.84 秒)1228.56 ms——
即时响应(p50 / p95)0.037 ms / 0.050 ms0.019 ms / 0.024 ms—微秒级
后台解析 p500.703 ms0.137 ms497.175 ms~707x ~ 3629x
后台解析 p950.860 ms0.148 ms550.450 ms~640x ~ 3719x
即时响应 p500.037 ms100,000 行实测
后台解析 p500.703 ms100,000 行实测
占一帧的比例< 1%相对 120 FPS 的 8.33 ms
最大提升~3629x10 万行后台解析

NOTE

即时响应指你按下按键之后,字符与光标出现在屏幕上所需的时间。 10 万行实测仅需 37 微秒(0.037 ms),不到一帧预算的百分之一, 因此无论文档多长,手感都与空白文档无异。

后台解析指编辑器在后台补上语法高亮与精细排版所需的时间。 它不阻塞你的输入,10 万行实测为 0.703 ms。

1.3 不同编辑场景下的表现

针对 100,000 行的巨型文档,编辑器会持续保留上一版本已解析的结果以复用, 因此不同操作之间的差异很大。每组场景取 40 次采样的中位数与 95 分位。

编辑场景 即时响应 后台解析 p50 后台解析 p95
普通字符输入替换0.038 ms0.716 ms0.786 ms
交替插入 / 删除字符0.038 ms0.712 ms1.218 ms
行内强调语法变动0.038 ms0.716 ms0.934 ms
多段落随机跳跃编辑0.044 ms0.466 ms0.626 ms
标题结构性重构0.085 ms997.10 ms1162.17 ms

结论

  1. 日常高频输入极度流畅:字符录入、退格删除、行内加粗与跨段落编辑, 后台解析稳定在 0.46 ms ~ 0.71 ms 之间,即时响应仅需 38 微秒。
  2. 结构性改动也不卡手:当输入 # 触发标题块重构时, 后台需要重算一整块内容(约 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 不存在运行时的垃圾回收,因此不会出现网页内核编辑器那种周期性卡顿。 冷启动内存占用与常见编辑器的对比如下。

冷启动内存占用对比(越低越好)
Akileas ~28 MB
Typora ~110 MB
Obsidian ~150 MB
VS Code ~180 MB
Notion / 纯 Web ~350 MB

常驻内存基线:轻量文档约 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 ms12 ~ 28 ms18 ~ 40 ms45 ~ 120 ms
长时间使用是否变卡不会(无垃圾回收)周期性丢帧周期性丢帧周期性丢帧频繁卡顿
数学公式内置原生排版依赖网页组件依赖网页组件依赖网页组件在线渲染
图表渲染原生矢量绘制网页组件注入网页组件注入网页组件注入云端 / 脚本绘图
历史版本内置时光机,无需 Git需自行配置 Git 或插件简易快照恢复仅依赖系统备份依赖云端
PDF 导出原生矢量 PDF依赖浏览器打印依赖浏览器打印依赖外部工具仅导出网页