# Rips 稠密与稀疏输入性能基准

在仓库根目录运行 `node scripts/benchmark.mjs`。脚本先构建 JS 目标，再以独立 Node 进程
对 8、12、16、20、24、28 个确定性二维点分别运行三次，取耗时和分析后 RSS 的中位值。
稠密数据的点落在单位方块中，Rips 边截止值为 2，故包含完整二维骨架。
稀疏数据按每组四点构成小方形，相邻组间隔 10，截止值为 0.21；
Rips 构建沿阈值内邻接表枚举三角形和四面体，避免对稀疏输入扫描所有三元/四元组。

2026-10-10 本地示例：Windows x64、Node.js v24.15.0、moonc 0.10.14。

| 点数 | 细胞数 | 计算耗时中位数（毫秒） | 分析后进程 RSS 中位数（MiB） |
| ---: | ---: | ---: | ---: |
| 8 | 92 | 4.5 | 39.4 |
| 12 | 298 | 9.7 | 40.7 |
| 16 | 696 | 10.5 | 47.3 |
| 20 | 1350 | 15.3 | 49.2 |
| 24 | 2324 | 20.4 | 51.6 |
| 28 | 3682 | 23.6 | 54.5 |

2026-10-11 本地稀疏输入示例，同一机器、Node.js v24.15.0、moonc 0.10.14，三次运行取中位数：

| 点数 | 细胞数 | 计算耗时中位数（毫秒） | 分析后进程 RSS 中位数（MiB） |
| ---: | ---: | ---: | ---: |
| 32 | 64 | 4.5 | 39.0 |
| 64 | 128 | 5.4 | 42.4 |
| 96 | 192 | 7.4 | 43.4 |
| 128 | 256 | 8.8 | 44.7 |

计时从 MoonBit 构造过滤复形之前开始，到约化完成结束，不含进程启动、输出序列化和文件读写。
RSS 是分析结束时整个 Node 进程的驻留内存，**不是峰值内存**，且包含运行时开销。
数字随机器、Node/MoonBit 版本和系统负载变化；只描述这组数据，不可外推到无限规模。
该改动优化的是稀疏复形构建，稠密输入仍可能迅速达到细胞或约化预算；
表格没有旧版同机配对数据，因此不声称具体加速倍数。H2 的三维骨架可比 H0/H1 昂贵得多。
