基准测试数据整理
把多组基准测试的多次测量值整理成表格:平均值、中位数、极值、标准差、相对基准的倍数与排名,并可复制成 Markdown 或纯文本。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
基准测试数据
2
结果表格
| 排名 | 名称 | 次数 | 平均值 | 中位数 | 最小 | 最大 | 标准差 | 相对基准 |
|---|---|---|---|---|---|---|---|---|
| 2 | loop-sum | 3 | 122 | 122 | 120 | 124 | 1.63 | 1.24× (+23.65%) |
| 1 | array-map(基准) | 3 | 98.67 | 99 | 96 | 101 | 2.05 | 1.00× (+0.00%) |
| 3 | json-parse | 3 | 209.67 | 210 | 205 | 214 | 3.68 | 2.13× (+112.50%) |
可复制结果
Markdown 表格
| 排名 | 名称 | 平均值 | 中位数 | 最小 | 最大 | 标准差 | 相对基准 | | --- | --- | --- | --- | --- | --- | --- | --- | | 1 | array-map (基准) | 98.67 | 99 | 96 | 101 | 2.05 | 1.00× (+0.00%) | | 2 | loop-sum | 122 | 122 | 120 | 124 | 1.63 | 1.24× (+23.65%) | | 3 | json-parse | 209.67 | 210 | 205 | 214 | 3.68 | 2.13× (+112.50%) |
纯文本
1. array-map | 平均值 98.67 | 中位数 99 | 最小 96 | 最大 101 | 标准差 2.05 | 相对基准 1.00× (+0.00%) 2. loop-sum | 平均值 122 | 中位数 122 | 最小 120 | 最大 124 | 标准差 1.63 | 相对基准 1.24× (+23.65%) 3. json-parse | 平均值 209.67 | 中位数 210 | 最小 205 | 最大 214 | 标准差 3.68 | 相对基准 2.13× (+112.50%)
这个工具能做什么
- 把几组跑分数据粘进来,一次拿到平均值、中位数、极值、标准差、相对基准倍数和排名,省掉在表格里手算。
- 写性能对比文章或 PR 说明时,直接复制 Markdown 表格贴进 README 或 Issue。
- 判断一次优化是不是真的有效:以原实现为基准,看新实现的倍率与百分比差是否超过测量波动(对比标准差就知道波动有多大)。
- 整理多轮压测结果,用中位数和极值判断有没有被个别异常值带偏。
示例
输入
loop-sum 120 124 122 array-map 96 99 101 json-parse 210 205 214
输出
| 排名 | 名称 | 平均值 | 中位数 | 最小 | 最大 | 标准差 | 相对基准 | | --- | --- | --- | --- | --- | --- | --- | --- | | 1 | array-map (基准) | 98.67 | 99 | 96 | 101 | 2.05 | 1.00× (+0.00%) | | 2 | loop-sum | 122 | 122 | 120 | 124 | 1.63 | 1.24× (+23.65%) | | 3 | json-parse | 209.67 | 210 | 205 | 214 | 3.68 | 2.13× (+112.50%) |
这是默认设置(相对基准=最优样本、数值越小越好、小数 2 位)下的真实输出;倍率永远 ≥ 1,说明最慢的那组是基准的 2.13 倍耗时。
常见问题
基准该选「第一个样本」还是「最优样本」?
看你想要哪种结论。选最优样本时所有倍率都 ≥ 1,读起来像「比最快的慢多少倍」,适合挑最优实现;选第一个样本则按输入顺序当参照,适合对照原版实现看改动带来了多少提升(倍率可能小于 1,显示为 −x%)。
标准差按总体还是样本算?
默认按总体(除以 n),勾选「标准差按样本计算」后改用 n−1。同一组数据下样本标准差略大。测量次数只有 3 次时两者差别明显,报告里最好写明用的是哪一种;如果只测了一次,样本标准差无法计算,会显示为空。
数值可以带单位吗?
可以。`12.4ms`、`1.2GB/s`、`320ops/s`、`95%` 都能解析,工具只取前面的数字部分。但单位只是注释,不会被换算——混用 ms 和 s 会得出错误的倍率,录入前请统一单位。科学计数法 `1e3` 也支持。
为什么排名会出现并列?
因为排名按平均值的精确值比较,两个样本平均值完全相同就共享同一个名次,后面那个跳过相应名次。现实里更常见的是数值差在标准差之内,那种情况虽然不会并列,但也不该当成真实差异。
数据会被上传吗?
不会。解析、统计和表格生成全部在浏览器里完成,页面不发任何网络请求,粘贴的跑分数据也不会被记录。
关键词:benchmark基准测试性能对比markdown 表格标准差speedupmeasures跑分