dzmingli_vs_floating 性能

测量环境

这些数字来自一次 native release 运行:Apple M4、macOS 26.5、moon 0.1.20260703、DzmingLi/decimal@0.2.2、Luna-Flow/floating@0.7.1 和 Luna-Flow/mare_mark@0.3.0,记录于 2026-07-15。CPU 频率未受控制。本分支上的 MoonBit 0.10 迁移没有改变任何基准逻辑,运行也尚未用新工具链重复。测量方法在设计页中推导。

结果解读

当前 0.7.1 基准的 scaling 共执行 1,476 次校验,其中 1,368 次通过、DzmingLi 失败 108 次。扩展 common-digits 对 19 个操作执行 1,368 次校验并全部通过。

在双方都通过 oracle 的 1,024 位,floating GDA 的 arithmetic-only 中位数为 0.978–16.798 µs/op,DzmingLi 为 12.459–78.978 µs/op;full-path 分别为 7.427–24.133 µs/op 与 152.145–205.549 µs/op。GDA 的 speedup 随操作和 scope 为 3.54–95.44×。

DzmingLi 从 4,096 位开始算术不正确,因此这些点不能解释为 speedup。20,000 位时,已验证的 GDA arithmetic-only 加、减、除、比较分别为 14.810、15.083、60.588、0.130 µs/op;full-path 分别为 154.468、155.582、131.363、139.865 µs/op。

依赖数据的比较

DzmingLi 的 arithmetic-only 比较在大规模输入处仍表现出数据相关短路:4,096、8,192、10,000、16,384 和 20,000 位的中位数依次为 105.918、0.103、675.705、0.101 和 2,203.063 µs/op。部分 fixture 可由符号、指数或有效位数等元数据立即判定,另一些则需要深入比较长系数,因此不能把折线尖峰解释为单一的位数伸缩规律。

数据与图表

本分析使用的图表和报告保存在仓库中:主图、补充图、scaling 报告和常见位数报告,JSONL 记录和 Plot IR 位于同一目录。