跳转到内容

Benchmark

本页由 nx run apps-docs:generate-bench 自动生成。

  • 本页用于查看核心性能结论、回归风险与关键趋势。
  • 详细分组数据与附录趋势请从本页内链接进入明细页。
  1. 先看“快速结论”定位风险场景。
  2. 再看“运行环境”确认对比基线一致性。
  3. 最后看“关键场景趋势”判断是偶发波动还是持续退化。
  • 性能基准: npm exec nx -- run @iostore/store:bench -- src/lib/__bench__/core-perf.bench.ts
  • GC/堆增量报告: npm exec nx -- run @iostore/store:bench-gc
场景最新 mean (ms/op)最新 ops/sec最新 RME (%)
commit deep update (80 boundary)120.728.284.89
snapshot: scope sparse dirty key (1k)71.4014.004.03
snapshot: array (20k boundary)68.7514.555.06
batch update 200 units32.1231.133.24
sequential update 200 units25.4939.232.88
场景最新 RME (%)最新 mean (ms/op)最新 ops/sec
snapshot: array (10k)5.641.83546.27
snapshot: array (20k boundary)5.0668.7514.55
commit deep update (80 boundary)4.89120.728.28
snapshot: scope (10k)4.661.85540.90
createUnit: object (1k)4.512.96337.31
场景较上次变化 (mean)最新 mean (ms/op)最新 RME (%)
no batch: 40k updates+236.61%4.571.84
batch: 40k updates+182.99%4.411.99
createUnit: primitive (1k)+87.39%1.601.43
snapshot: depth (80 boundary)+85.07%0.662.63
snapshot: scope dense dirty keys (1k)+78.93%14.703.09

首次记录

  • Date: 2026-02-19T14:30:45.321Z
  • Node: v22.22.0
  • Platform: darwin 25.2.0 (arm64)
  • CPU: Apple M4
  • Benchmark time: 2000ms per task
  • Warmup time: 250ms per task
场景较上次变化 (mean)变化幅度
no batch: 40k updates+236.61%+236.61%
batch: 40k updates+182.99%+182.99%
createUnit: primitive (1k)+87.39%+87.39%
snapshot: depth (80 boundary)+85.07%+85.07%
snapshot: scope dense dirty keys (1k)+78.93%+78.93%
snapshot: scope sparse dirty key (1k)+77.39%+77.39%
  • 最新: 1.83 ms/op(越低越好)
  • 上次: 1.31
  • 较上次变化 (mean): +40.13%
xychart-beta
  title "snapshot: array (10k)"
  x-axis "运行" [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
  y-axis "ms/op(越低越好)" 0 --> 3.4406
  line [1.2269, 1.6701, 1.916, 1.2334, 1.3243, 2.9918, 1.2372, 1.1148, 1.0921, 1.5811, 2.2031, 0.8607, 0.9056, 0.913, 1.3772, 1.3423, 0.9652, 1.3983, 1.3064, 1.8306]
  • 最新: 68.75 ms/op(越低越好)
  • 上次: 44.66
  • 较上次变化 (mean): +53.96%
xychart-beta
  title "snapshot: array (20k boundary)"
  x-axis "运行" [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
  y-axis "ms/op(越低越好)" 0 --> 120.5491
  line [61.1521, 58.4608, 68.006, 65.9652, 62.8001, 104.8253, 39.2788, 36.8131, 39.3614, 80.8782, 75.7682, 35.8054, 43.1804, 41.7241, 47.5623, 45.7404, 47.5984, 48.4603, 44.6552, 68.7509]
  • 最新: 0.66 ms/op(越低越好)
  • 上次: 0.36
  • 较上次变化 (mean): +85.07%
xychart-beta
  title "snapshot: depth (80 boundary)"
  x-axis "运行" [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
  y-axis "ms/op(越低越好)" 0 --> 0.8737
  line [0.5232, 0.5164, 0.6372, 0.6064, 0.5917, 0.7466, 0.3336, 0.3218, 0.3058, 0.7419, 0.7597, 0.3256, 0.3548, 0.3436, 0.3753, 0.3667, 0.3687, 0.3731, 0.3574, 0.6614]
  • 最新: 1.85 ms/op(越低越好)
  • 上次: 1.33
  • 较上次变化 (mean): +38.91%
xychart-beta
  title "snapshot: scope (10k)"
  x-axis "运行" [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
  y-axis "ms/op(越低越好)" 0 --> 3.3318
  line [1.3524, 1.7783, 1.9876, 1.4818, 1.4611, 2.8972, 1.5937, 1.0221, 1.0157, 1.8997, 2.4248, 0.801, 0.8104, 0.763, 1.4106, 1.3197, 0.9443, 1.5189, 1.3309, 1.8488]
  • 最新: 14.70 ms/op(越低越好)
  • 上次: 8.22
  • 较上次变化 (mean): +78.93%
xychart-beta
  title "snapshot: scope dense dirty keys (1k)"
  x-axis "运行" [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
  y-axis "ms/op(越低越好)" 0 --> 29.1473
  line [17.1519, 15.7889, 19.2958, 19.2895, 18.3924, 25.3455, 9.8858, 9.8014, 9.9866, 22.3324, 22.3562, 6.4601, 7.4344, 7.1569, 7.8466, 7.7642, 8.3579, 7.9557, 8.216, 14.701]
  • 最新: 71.40 ms/op(越低越好)
  • 上次: 40.25
  • 较上次变化 (mean): +77.39%
xychart-beta
  title "snapshot: scope sparse dirty key (1k)"
  x-axis "运行" [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
  y-axis "ms/op(越低越好)" 0 --> 106.3175
  line [58.9408, 54.4331, 61.0026, 62.7183, 60.8046, 92.45, 40.3595, 38.8407, 38.2066, 87.3335, 83.0765, 37.5043, 38.051, 39.8542, 40.8982, 41.5576, 46.6928, 43.0482, 40.2538, 71.4044]
  • 最新: 10.56 ms/op(越低越好)
  • 上次: 6.61
  • 较上次变化 (mean): +59.80%
xychart-beta
  title "commit deep update (200)"
  x-axis "运行" [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
  y-axis "ms/op(越低越好)" 0 --> 102.4197
  line [8.9821, 9.1604, 10.1783, 9.4101, 9.7117, 89.0606, 5.6993, 5.6565, 5.4369, 10.4211, 11.6439, 4.9148, 5.6752, 5.5493, 6.5752, 6.7991, 6.5189, 6.2335, 6.6099, 10.5629]
  • 最新: 120.72 ms/op(越低越好)
  • 上次: 77.87
  • 较上次变化 (mean): +55.03%
xychart-beta
  title "commit deep update (80 boundary)"
  x-axis "运行" [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
  y-axis "ms/op(越低越好)" 0 --> 2997.8592
  line [1514.5058, 1373.8218, 2188.7488, 2137.111, 2041.8389, 2606.8341, 62.8373, 63.8201, 62.6381, 143.7464, 128.7863, 73.2994, 95.3008, 66.0405, 78.925, 70.9919, 82.3239, 96.4528, 77.8669, 120.7175]
  • 最新: 32.12 ms/op(越低越好)
  • 上次: 20.29
  • 较上次变化 (mean): +58.34%
xychart-beta
  title "batch update 200 units"
  x-axis "运行" [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
  y-axis "ms/op(越低越好)" 0 --> 66.5085
  line [39.7927, 38.0798, 46.6696, 44.9548, 42.317, 57.8335, 26.6839, 25.865, 25.4585, 54.1261, 52.7523, 18.1003, 20.2501, 19.1779, 20.3793, 20.1077, 20.5293, 20.6221, 20.2854, 32.1202]
  • 最新: 4.41 ms/op(越低越好)
  • 上次: 1.56
  • 较上次变化 (mean): +182.99%
xychart-beta
  title "batch: 40k updates"
  x-axis "运行" [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
  y-axis "ms/op(越低越好)" 0 --> 11.0329
  line [6.2965, 6.3556, 7.8423, 7.444, 7.486, 9.069, 3.9739, 3.9589, 3.7941, 9.0061, 9.5938, 1.2108, 1.6838, 1.3223, 1.5228, 1.3391, 1.3114, 1.3105, 1.5571, 4.4063]
  • 最新: 4.57 ms/op(越低越好)
  • 上次: 1.36
  • 较上次变化 (mean): +236.61%
xychart-beta
  title "no batch: 40k updates"
  x-axis "运行" [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
  y-axis "ms/op(越低越好)" 0 --> 10.6144
  line [6.3526, 6.1694, 7.8487, 7.1789, 6.9387, 9.2299, 4.0016, 3.9039, 3.7393, 8.7281, 8.9905, 1.2185, 1.564, 1.3388, 1.4268, 1.3203, 1.3211, 1.3101, 1.3586, 4.5732]
  • 最新: 25.49 ms/op(越低越好)
  • 上次: 19.09
  • 较上次变化 (mean): +33.50%
xychart-beta
  title "sequential update 200 units"
  x-axis "运行" [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
  y-axis "ms/op(越低越好)" 0 --> 53.5731
  line [32.8429, 30.1082, 35.0801, 33.9749, 35.0126, 44.9087, 20.2699, 19.4274, 19.0481, 45.4128, 46.5853, 11.833, 12.9943, 13.086, 13.2492, 13.1927, 13.1432, 13.0477, 19.0935, 25.49]
  • 最新: 2.96 ms/op(越低越好)
  • 上次: 1.99
  • 较上次变化 (mean): +49.06%
xychart-beta
  title "createUnit: object (1k)"
  x-axis "运行" [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
  y-axis "ms/op(越低越好)" 0 --> 5.516
  line [3.0638, 2.9003, 3.1229, 3.2107, 3.3088, 4.7965, 1.8328, 1.7788, 1.7437, 3.5115, 3.5129, 1.791, 1.9153, 1.9254, 2.1437, 2.088, 2.1157, 2.1171, 1.9889, 2.9646]
  • 最新: 1.60 ms/op(越低越好)
  • 上次: 0.85
  • 较上次变化 (mean): +87.39%
xychart-beta
  title "createUnit: primitive (1k)"
  x-axis "运行" [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
  y-axis "ms/op(越低越好)" 0 --> 2.5637
  line [1.6748, 1.5148, 1.5656, 1.8013, 1.8037, 2.2293, 0.8112, 0.8072, 0.7566, 1.9641, 1.9289, 0.7964, 0.8245, 0.8146, 0.859, 0.869, 0.9129, 0.8626, 0.8537, 1.5996]