Bench
Paneflow 用数字而不是形容词来交付性能工作。下面每个套件都在同一台机器上,用仓库里的脚本分别跑已提交的基线和最新提交。终端管线是第一个,更多套件会陆续加入。
终端管线cb05be20
指标节省
- 1空闲唤醒,仅显示面板98 % 64.0×
- 2按键回显时发布,220×60 面板95 % 20.0×
- 3读取一行文本,220×60 面板92 % 11.8×
- 4空闲唤醒,停在提示符的 shell86 % 7.11×
- 5零星输出下的发布门控75 % 4.00×
- 6语料吞吐量74 % 3.87×
- 7解析基础字体,每帧50 % 2.00×
- 8滚动时发布,120×40 面板50 % 1.98×
- 9滚动时发布,220×60 面板36 % 1.56×
- 10布局遍历,220×60 面板9.9 % 1.11×
终端管线
从 PTY 字节到渲染器绘制的布局:滚动和按键回显时的快照与网格转换、无窗口的布局遍历、渲染线程每帧的查找、零星输出下的发布节奏、语料吞吐量,以及空闲面板的唤醒频率。时间是 release 配置下的中位数,分配计数是精确值。
全部指标
基线与最新并排:主要数值、有 p95 的指标显示 p95,以及每次迭代的分配。
| 指标 | 基线 | 最新 | 变化 | p95 | 每次迭代分配,基线 | 每次迭代分配,最新 |
|---|---|---|---|---|---|---|
| 滚动时发布,220×60 面板 | 700.7 µs | 448.0 µs | -36.1 % 1.56× | 863.6 µs → 465.7 µs | 2.70 MiB | 266 B |
| 按键回显时发布,220×60 面板 | 166.0 µs | 8.3 µs | -95.0 % 20.0× | 196.2 µs → 8.6 µs | 1.41 MiB | 106 B |
| 滚动时发布,120×40 面板 | 324.8 µs | 163.8 µs | -49.6 % 1.98× | 377.1 µs → 169.8 µs | 1.02 MiB | 242 B |
| 布局遍历,220×60 面板 | 515.8 µs | 464.9 µs | -9.9 % 1.11× | 632.3 µs → 481.3 µs | 164.8 KiB | 164.8 KiB |
| 读取一行文本,220×60 面板 | 7.1 µs | 600 ns | -91.5 % 11.8× | 9.1 µs → 600 ns | 4.3 KiB | 1.9 KiB |
| 解析基础字体,每帧 | 200 ns | 100 ns | -50.0 % 2.00× | 200 ns → 100 ns | 152 B | 0 B |
| 读取当前主题,每帧 | 100 ns | 100 ns | +0.0 % 1.00× | 100 ns → 100 ns | 0 B | 0 B |
| 零星输出下的发布门控 | 1,000 帧 / 1,000 块 | 250 帧 / 1,000 块 | -75.0 % 4.00× | 不适用 | 不适用 | 不适用 |
| 语料吞吐量 | 0.2 MiB/s | 0.9 MiB/s | +287.0 % 3.87× | 不适用 | 1.52 MiB | 2.8 KiB |
| 空闲唤醒,仅显示面板 | 64 次/秒 | 1 次/秒 | -98.4 % 64.0× | 不适用 | 不适用 | 不适用 |
| 空闲唤醒,停在提示符的 shell | 64 次/秒 | 9 次/秒 | -85.9 % 7.11× | 不适用 | 不适用 | 不适用 |
更多套件会陆续加入,每个都带有自己已提交的基线和存档运行,格式相同。