性能数据

每一行都调用产品的直接 CLI 可执行文件;TomlSmith 使用 release 模式的 Rust tomlsmith 二进制。比较中不计入包管理器 launcher 或包装进程。

复现命令、产品安装方式和测量实现统一维护在 tomlsmith/benchmark 仓库

检查 · TOML 1.0

耗时中位数 · 对数刻度 · 越短越好
TomlSmith native CLI
10.21 ms · 12.26 MiB/s · 6.98 MiB RSS
tomlv · BurntSushi
12.07 ms · 10.37 MiB/s · 8.97 MiB RSS
Taplo CLI
23.34 ms · 5.36 MiB/s · 18.59 MiB RSS
Tombi
206.80 ms · 0.61 MiB/s · 27.25 MiB RSS

检查 · TOML 1.1

耗时中位数 · 对数刻度 · 越短越好
TomlSmith native CLI
8.17 ms · 15.33 MiB/s · 6.95 MiB RSS
tomlv · BurntSushi
10.07 ms · 12.43 MiB/s · 8.89 MiB RSS
Tombi
193.31 ms · 0.65 MiB/s · 27.28 MiB RSS

格式化 · TOML 1.0

耗时中位数 · 对数刻度 · 越短越好
TomlSmith native CLI
8.35 ms · 14.99 MiB/s · 6.95 MiB RSS
tomll · go-toml*
10.91 ms · 11.47 MiB/s · 6.45 MiB RSS
dprint + TOML
20.12 ms · 6.22 MiB/s · 19.94 MiB RSS
Taplo CLI
22.07 ms · 5.67 MiB/s · 18.77 MiB RSS
Tombi
655.14 ms · 0.19 MiB/s · 31.86 MiB RSS
Prettier + TOML
678.41 ms · 0.18 MiB/s · 594.09 MiB RSS

格式化 · TOML 1.1

耗时中位数 · 对数刻度 · 越短越好
TomlSmith native CLI
8.36 ms · 14.97 MiB/s · 7.02 MiB RSS
tomll · go-toml*
9.87 ms · 12.68 MiB/s · 6.56 MiB RSS
dprint + TOML
18.99 ms · 6.59 MiB/s · 19.94 MiB RSS
Tombi
721.46 ms · 0.17 MiB/s · 31.55 MiB RSS

* tomll 是语义重打印器,会丢弃注释并改写字面量,因此它完成的工作少于保留注释的格式化器。

如何解读

  • 所有数字都是所选合成文档的冷启动端到端耗时中位数,越低越好;每个计时样本都会启动新进程。
  • TOML 1.0 与 1.1、checkformat 是四条独立赛道,只能在同一块面板内比较。
  • 几个百分点以内的差异可能来自单次会话漂移,不应解读为稳定排序。
  • tomll 会丢弃注释并改写字面量,完成的工作少于保留注释的格式化器。

测量契约

这里测量产品 CLI,而不是解析器库:

  • TomlSmith 以 release 模式构建并直接调用 Rust 原生 CLI,与 Taplo、dprint 和 Go 工具保持相同的单进程边界。
  • 每个计时样本都会启动新进程,并使用 stdin/stdout/stderr。
  • TOML 1.0 与 1.1、checkformat 都是独立赛道。
  • 计时前先执行正确性检查。Format 输出必须能按同一版本重新解析、保持解码内容不变,并在第二次格式化时不再变化。
  • Peak RSS 由额外的新进程测量,资源统计工具不会进入延迟样本。