数字说话▊
git 启动 3–7x vs Git Bash prompt git 段 4–10x(对方每条 3–5 次 fork) 命令替换 / 子壳 13–62x vs GNU bash 冷启动 ~170ms · 单文件 3.79MB
每个数字都有来源(下方表格逐条标注),未实测的宣称不上这页。
启动与延迟(vs Git Bash / WSL)
| 指标 | niubash | 对照 | 倍数 | 来源 |
|---|---|---|---|---|
| git --version 启动 | ~14 ms | Git Bash 45–103 ms | 3–7x faster | niubash README / CHANGELOG(Receipts) |
| git status | ~23 ms | — | — | niubash CHANGELOG |
| shell 冷启动到 prompt | ~170 ms | Git Bash ~1 s · PowerShell ~280 ms · WSL 秒级 | 3–6x faster | niubash docs/src/why-niubash.md |
| prompt 内 git 段(p50) | 26 ms(max 37) | Git Bash __git_ps1 100–300 ms(每条 prompt 3–5 次 fork) | 4–10x faster | niubash CHANGELOG(实测票据) |
| WinuxCmd 冷启动 / 体积 | ~19 ms · 3.79 MB 单文件 | — | — | WinuxCmd README(PGO 后) |
fork / 子壳专项 rubash 引擎 vs GNU bash 5.3.20
无 fork 三层执行模型(进程内 ShellState::clone 子壳)的直接收益—— 2026-10-18 复测,rubash HEAD 141b460 / niu 1.4.0,基线 GNU bash 5.3.20(aarch64), 方法:顺序轮换(interleaved),min-of-N,单项超时保护。
| 负载 | GNU bash → rubash | bash | rubash | niu | 倍数 |
|---|---|---|---|---|---|
| $( ) 命令替换 ×3000 | 4,382 ms | 90 ms | 119 ms | 48.7x | |
| 反引号替换 ×3000 | 4,903 ms | 79 ms | 107 ms | 62x | |
| 子壳 ( : ) ×5000 | 5,799 ms | 358 ms | 382 ms | 16.2x | |
| 递归 fib $() ×100 | 37,300 ms | 2,866 ms | 3,019 ms | 13.0x | |
| 外部进程循环 /bin/true ×2000 | 16,229 ms | 16,404 ms | 16,478 ms | 1.01x | |
| 后台 sleep & wait ×750 | 928 ms | 2,293 ms | 2,423 ms | 2.47x |
- 纯 fork/子壳类负载(命令替换、反引号、子壳、递归)实测 13–62x 快于 GNU bash:无 fork 三层执行模型(ShellState::clone 进程内子壳)的直接收益
- 外部进程循环 ≈1.01x 持平——真实 exec 成本仍在,无虚假加速
- real_ext 路径 0.980 → 1.02x faster;niu(产品壳) 与 rubash(引擎) 比例基本一致
含内联 coreutils 收益的负载 单列,不计入 fork 战绩
mkdir / touch / cat / sed / grep / wc 等常用命令在进程内执行、不产生子进程,下列倍数是「fork 节省 + 内联」的混合收益,诚实起见与上面的纯 fork 数字分开列。
| 负载 | bash | rubash | niu | 倍数 |
|---|---|---|---|---|
| 管道 echo | cat ×2000 | 17,347 ms | 91 ms | 105 ms | 190x |
| 真实脚本 mkdir/wc ×250 | 4,123 ms | 1,928 ms | 2,009 ms | 2.14x |
方法论与来源
- fork 专项:2026-10-18 复测,产物
recheck_fork_20261018-1628.tsv · recheck_fork2_20261018-1637.tsv(TODO:入库到本仓库 data/bench/)(待入库本仓库 data/bench/) - 启动/延迟:niubash 仓库 README「Receipts」、CHANGELOG 实测票据、docs/src/why-niubash.md
- 对照版本以各来源文档标注为准;数字随版本更新,本页由
src/data/benchmarks.json驱动 - 原则:未实测不写;输赢都展示(外部进程循环 ≈1.01x 持平即是真实 exec 成本)