Kinetica benchmark comparison

Current 20260716T215731619Z against accepted (no complete versioned run yet) · generated 2026-07-16T23:26:56.667Z

Technical summary

The runs differ in recorded environment metadata; the comparison was explicitly allowed and must be interpreted with that caveat. A change is classified when its direction-adjusted magnitude is at least 5%.

346common metrics
70regressions
102improvements
174within threshold

Browser aggregate change

Each bar is the geometric mean of current/baseline median ratios over common browser operations. Left/blue is faster; right/orange is slower. This comparison is descriptive and does not estimate statistical significance.

Largest movements

Regressions

  1. +354.4% vanilla · mount time
  2. +251.9% preact · mount time
  3. +217.2% svelte · mount time
  4. +177.8% vue · mount time
  5. +119.5% react · mount time
  6. +89.1% preact · script compile + evaluate
  7. +35.4% preact · reverse top-level subtrees
  8. +32.7% react · select row at 1,000 rows

Improvements

  1. -150.0% svelte · select row exponent
  2. -91.4% write + lazy read through 1,000-deep derived chain
  3. -68.8% re-render 1,000-row table after updating every 10th row
  4. -65.2% write + recompute through 10,000-wide derived fan
  5. -60.6% SSR: render parsed docs markdown to HTML string
  6. -56.3% react · select row exponent
  7. -56.2% parse all docs-site markdown (80 KB)
  8. -56.1% render 1,000-row table Node tree (fresh runtime)

Metric-level evidence

Exact baseline/current values and raw percentage changes. For higher-is-better metrics such as FPS, status classification reverses the raw percentage direction.

Browser operations (91)
ScopeMetricBaselineCurrentChangeStatus
kinetica · create 1,000 rows median 34.44 ms 39.17 ms +13.7% regression
kinetica · replace all 1,000 rows median 39.21 ms 41.49 ms +5.8% regression
kinetica · partial update (every 10th row) median 7.700 ms 7.730 ms +0.4% stable
kinetica · select row median 7.490 ms 6.830 ms -8.8% improvement
kinetica · swap two rows median 7.400 ms 7.400 ms +0.0% stable
kinetica · remove one row median 8.250 ms 8.520 ms +3.3% stable
kinetica · create 10,000 rows median 308.7 ms 278.4 ms -9.8% improvement
kinetica · append 1,000 rows to 1,000 median 34.89 ms 41.70 ms +19.5% regression
kinetica · clear 1,000 rows median 6.610 ms 6.480 ms -2.0% stable
kinetica · select row (10k table) median 7.750 ms 8.160 ms +5.3% regression
kinetica · swap two rows (10k table) median 45.68 ms 42.51 ms -6.9% improvement
kinetica · remove one row (10k table) median 57.43 ms 51.82 ms -9.8% improvement
kinetica · partial update (every 10th of 10k) median 45.23 ms 42.18 ms -6.7% improvement
react · create 1,000 rows median 33.17 ms 36.95 ms +11.4% regression
react · replace all 1,000 rows median 34.67 ms 40.14 ms +15.8% regression
react · partial update (every 10th row) median 7.250 ms 7.020 ms -3.2% stable
react · select row median 6.600 ms 6.890 ms +4.4% stable
react · swap two rows median 27.15 ms 34.77 ms +28.1% regression
react · remove one row median 7.240 ms 7.210 ms -0.4% stable
react · create 10,000 rows median 328.1 ms 327.7 ms -0.1% stable
react · append 1,000 rows to 1,000 median 30.50 ms 37.21 ms +22.0% regression
react · clear 1,000 rows median 7.050 ms 7.180 ms +1.8% stable
react · select row (10k table) median 7.670 ms 8.320 ms +8.5% regression
react · swap two rows (10k table) median 50.96 ms 57.56 ms +13.0% regression
react · remove one row (10k table) median 40.73 ms 43.41 ms +6.6% regression
react · partial update (every 10th of 10k) median 34.87 ms 36.90 ms +5.8% regression
preact · create 1,000 rows median 34.08 ms 38.54 ms +13.1% regression
preact · replace all 1,000 rows median 36.87 ms 40.02 ms +8.5% regression
preact · partial update (every 10th row) median 8.170 ms 7.280 ms -10.9% improvement
preact · select row median 8.370 ms 7.550 ms -9.8% improvement
preact · swap two rows median 7.340 ms 8.030 ms +9.4% regression
preact · remove one row median 7.870 ms 7.100 ms -9.8% improvement
preact · create 10,000 rows median 260.4 ms 256.0 ms -1.7% stable
preact · append 1,000 rows to 1,000 median 36.10 ms 37.31 ms +3.4% stable
preact · clear 1,000 rows median 7.540 ms 6.890 ms -8.6% improvement
preact · select row (10k table) median 9.230 ms 7.940 ms -14.0% improvement
preact · swap two rows (10k table) median 33.09 ms 33.77 ms +2.1% stable
preact · remove one row (10k table) median 42.68 ms 43.54 ms +2.0% stable
preact · partial update (every 10th of 10k) median 38.10 ms 37.22 ms -2.3% stable
vue · create 1,000 rows median 29.28 ms 29.87 ms +2.0% stable
vue · replace all 1,000 rows median 31.13 ms 32.17 ms +3.3% stable
vue · partial update (every 10th row) median 8.330 ms 7.850 ms -5.8% improvement
vue · select row median 7.800 ms 7.310 ms -6.3% improvement
vue · swap two rows median 8.930 ms 8.250 ms -7.6% improvement
vue · remove one row median 7.880 ms 7.460 ms -5.3% improvement
vue · create 10,000 rows median 249.1 ms 232.8 ms -6.5% improvement
vue · append 1,000 rows to 1,000 median 29.10 ms 27.83 ms -4.4% stable
vue · clear 1,000 rows median 7.240 ms 7.220 ms -0.3% stable
vue · select row (10k table) median 15.22 ms 14.68 ms -3.5% stable
vue · swap two rows (10k table) median 44.17 ms 45.33 ms +2.6% stable
vue · remove one row (10k table) median 52.93 ms 56.53 ms +6.8% regression
vue · partial update (every 10th of 10k) median 46.00 ms 47.24 ms +2.7% stable
svelte · create 1,000 rows median 28.54 ms 23.85 ms -16.4% improvement
svelte · replace all 1,000 rows median 32.24 ms 27.63 ms -14.3% improvement
svelte · partial update (every 10th row) median 8.060 ms 7.280 ms -9.7% improvement
svelte · select row median 7.250 ms 7.260 ms +0.1% stable
svelte · swap two rows median 8.010 ms 7.140 ms -10.9% improvement
svelte · remove one row median 7.580 ms 7.110 ms -6.2% improvement
svelte · create 10,000 rows median 220.1 ms 272.6 ms +23.8% regression
svelte · append 1,000 rows to 1,000 median 30.57 ms 32.35 ms +5.8% regression
svelte · clear 1,000 rows median 7.390 ms 7.040 ms -4.7% stable
svelte · select row (10k table) median 8.460 ms 8.150 ms -3.7% stable
svelte · swap two rows (10k table) median 30.81 ms 30.95 ms +0.5% stable
svelte · remove one row (10k table) median 43.35 ms 40.79 ms -5.9% improvement
svelte · partial update (every 10th of 10k) median 31.79 ms 30.09 ms -5.3% improvement
vanilla · create 1,000 rows median 29.53 ms 31.77 ms +7.6% regression
vanilla · replace all 1,000 rows median 32.11 ms 29.82 ms -7.1% improvement
vanilla · partial update (every 10th row) median 7.820 ms 7.190 ms -8.1% improvement
vanilla · select row median 6.990 ms 7.470 ms +6.9% regression
vanilla · swap two rows median 7.370 ms 7.940 ms +7.7% regression
vanilla · remove one row median 7.560 ms 7.150 ms -5.4% improvement
vanilla · create 10,000 rows median 210.5 ms 203.0 ms -3.5% stable
vanilla · append 1,000 rows to 1,000 median 31.35 ms 28.22 ms -10.0% improvement
vanilla · clear 1,000 rows median 6.790 ms 6.710 ms -1.2% stable
vanilla · select row (10k table) median 8.800 ms 8.170 ms -7.2% improvement
vanilla · swap two rows (10k table) median 28.11 ms 27.72 ms -1.4% stable
vanilla · remove one row (10k table) median 42.97 ms 45.18 ms +5.1% regression
vanilla · partial update (every 10th of 10k) median 32.60 ms 30.96 ms -5.0% improvement
compose-web · create 1,000 rows median 238.6 ms 226.6 ms -5.0% improvement
compose-web · replace all 1,000 rows median 360.9 ms 337.5 ms -6.5% improvement
compose-web · partial update (every 10th row) median 13.34 ms 12.47 ms -6.5% improvement
compose-web · select row median 12.05 ms 10.38 ms -13.9% improvement
compose-web · swap two rows median 554.0 ms 553.1 ms -0.2% stable
compose-web · remove one row median 507.2 ms 507.1 ms -0.0% stable
compose-web · create 10,000 rows median 7516.8 ms 7356.1 ms -2.1% stable
compose-web · append 1,000 rows to 1,000 median 240.7 ms 226.6 ms -5.9% improvement
compose-web · clear 1,000 rows median 21.97 ms 25.38 ms +15.5% regression
compose-web · select row (10k table) median 23.55 ms 22.30 ms -5.3% improvement
compose-web · swap two rows (10k table) median 9270.0 ms 9170.7 ms -1.1% stable
compose-web · remove one row (10k table) median 49225.7 ms 48296.7 ms -1.9% stable
compose-web · partial update (every 10th of 10k) median 112.4 ms 69.07 ms -38.6% improvement
Deep tree (28)
ScopeMetricBaselineCurrentChangeStatus
kinetica · create tree (1555 nodes) median 20.02 ms 18.81 ms -6.0% improvement
kinetica · update every 10th leaf median 7.070 ms 7.240 ms +2.4% stable
kinetica · reverse top-level subtrees median 9.860 ms 11.15 ms +13.1% regression
kinetica · no-op re-render (data unchanged) median 6.910 ms 7.410 ms +7.2% regression
react · create tree (1555 nodes) median 15.45 ms 16.81 ms +8.8% regression
react · update every 10th leaf median 6.930 ms 6.910 ms -0.3% stable
react · reverse top-level subtrees median 8.760 ms 11.33 ms +29.3% regression
react · no-op re-render (data unchanged) median 6.780 ms 5.420 ms -20.1% improvement
preact · create tree (1555 nodes) median 15.50 ms 16.48 ms +6.3% regression
preact · update every 10th leaf median 6.600 ms 5.940 ms -10.0% improvement
preact · reverse top-level subtrees median 7.370 ms 9.980 ms +35.4% regression
preact · no-op re-render (data unchanged) median 6.490 ms 6.030 ms -7.1% improvement
vue · create tree (1555 nodes) median 18.97 ms 21.42 ms +12.9% regression
vue · update every 10th leaf median 7.150 ms 7.110 ms -0.6% stable
vue · reverse top-level subtrees median 8.560 ms 10.03 ms +17.2% regression
vue · no-op re-render (data unchanged) median 6.730 ms 6.850 ms +1.8% stable
svelte · create tree (1555 nodes) median 20.16 ms 19.86 ms -1.5% stable
svelte · update every 10th leaf median 6.990 ms 7.130 ms +2.0% stable
svelte · reverse top-level subtrees median 8.940 ms 9.600 ms +7.4% regression
svelte · no-op re-render (data unchanged) median 6.270 ms 6.090 ms -2.9% stable
vanilla · create tree (1555 nodes) median 14.67 ms 15.94 ms +8.7% regression
vanilla · update every 10th leaf median 6.680 ms 6.100 ms -8.7% improvement
vanilla · reverse top-level subtrees median 8.770 ms 10.78 ms +22.9% regression
vanilla · no-op re-render (data unchanged) median 6.440 ms 5.660 ms -12.1% improvement
compose-web · create tree (1555 nodes) median 54.39 ms 54.46 ms +0.1% stable
compose-web · update every 10th leaf median 14.78 ms 15.77 ms +6.7% regression
compose-web · reverse top-level subtrees median 22.10 ms 22.45 ms +1.6% stable
compose-web · no-op re-render (data unchanged) median 8.150 ms 6.160 ms -24.4% improvement
Startup and payload (28)
ScopeMetricBaselineCurrentChangeStatus
kinetica · mount time median 45.00 ms 34.40 ms -23.6% improvement
kinetica · script compile + evaluate scriptMs 9.610 ms 8.960 ms -6.8% improvement
kinetica · total blocking time tbtMs 0.000 ms 0.000 ms stable
kinetica · JavaScript payload gzipBytes 86.0 KB 86.1 KB +0.1% stable
react · mount time median 18.50 ms 40.60 ms +119.5% regression
react · script compile + evaluate scriptMs 13.41 ms 14.53 ms +8.4% regression
react · total blocking time tbtMs 0.000 ms 0.000 ms stable
react · JavaScript payload gzipBytes 60.3 KB 60.3 KB +0.0% stable
preact · mount time median 7.700 ms 27.10 ms +251.9% regression
preact · script compile + evaluate scriptMs 4.660 ms 8.810 ms +89.1% regression
preact · total blocking time tbtMs 0.000 ms 0.000 ms stable
preact · JavaScript payload gzipBytes 8.6 KB 8.6 KB +0.0% stable
vue · mount time median 13.50 ms 37.50 ms +177.8% regression
vue · script compile + evaluate scriptMs 11.66 ms 9.450 ms -19.0% improvement
vue · total blocking time tbtMs 0.000 ms 0.000 ms stable
vue · JavaScript payload gzipBytes 65.2 KB 65.2 KB +0.0% stable
svelte · mount time median 8.700 ms 27.60 ms +217.2% regression
svelte · script compile + evaluate scriptMs 8.950 ms 5.090 ms -43.1% improvement
svelte · total blocking time tbtMs 0.000 ms 0.000 ms stable
svelte · JavaScript payload gzipBytes 20.8 KB 20.8 KB +0.0% stable
vanilla · mount time median 5.700 ms 25.90 ms +354.4% regression
vanilla · script compile + evaluate scriptMs 7.080 ms 6.920 ms -2.3% stable
vanilla · total blocking time tbtMs 0.000 ms 0.000 ms stable
vanilla · JavaScript payload gzipBytes 1.2 KB 1.2 KB +0.0% stable
compose-web · mount time median 44.50 ms 41.50 ms -6.7% improvement
compose-web · script compile + evaluate scriptMs 17.20 ms 16.76 ms -2.6% stable
compose-web · total blocking time tbtMs 0.000 ms 0.000 ms stable
compose-web · JavaScript payload gzipBytes 171.6 KB 171.6 KB +0.0% stable
Memory (42)
ScopeMetricBaselineCurrentChangeStatus
kinetica · heap after load afterLoadMb 1.990 MB 1.990 MB +0.0% stable
kinetica · heap after 1k rows after1kMb 4.960 MB 4.950 MB -0.2% stable
kinetica · heap after 5× replace after5xReplaceMb 5.180 MB 5.180 MB +0.0% stable
kinetica · heap after 10× create/clear afterCreateClear10Mb 3.670 MB 3.680 MB +0.3% stable
kinetica · heap after unmount afterUnmountMb 3.540 MB 3.540 MB +0.0% stable
kinetica · heap after 5× remount after5xRemountMb 3.630 MB 3.630 MB +0.0% stable
react · heap after load afterLoadMb 1.620 MB 1.620 MB +0.0% stable
react · heap after 1k rows after1kMb 4.400 MB 4.400 MB +0.0% stable
react · heap after 5× replace after5xReplaceMb 4.990 MB 4.990 MB +0.0% stable
react · heap after 10× create/clear afterCreateClear10Mb 3.170 MB 3.170 MB +0.0% stable
react · heap after unmount afterUnmountMb 2.850 MB 2.850 MB +0.0% stable
react · heap after 5× remount after5xRemountMb 2.840 MB 2.840 MB +0.0% stable
preact · heap after load afterLoadMb 1.270 MB 1.270 MB +0.0% stable
preact · heap after 1k rows after1kMb 4.280 MB 4.280 MB +0.0% stable
preact · heap after 5× replace after5xReplaceMb 4.390 MB 4.390 MB +0.0% stable
preact · heap after 10× create/clear afterCreateClear10Mb 2.170 MB 2.170 MB +0.0% stable
preact · heap after unmount afterUnmountMb 2.140 MB 2.100 MB -1.9% stable
preact · heap after 5× remount after5xRemountMb 2.120 MB 2.110 MB -0.5% stable
vue · heap after load afterLoadMb 1.850 MB 1.850 MB +0.0% stable
vue · heap after 1k rows after1kMb 4.430 MB 4.430 MB +0.0% stable
vue · heap after 5× replace after5xReplaceMb 4.590 MB 4.590 MB +0.0% stable
vue · heap after 10× create/clear afterCreateClear10Mb 2.940 MB 2.940 MB +0.0% stable
vue · heap after unmount afterUnmountMb 2.930 MB 2.930 MB +0.0% stable
vue · heap after 5× remount after5xRemountMb 2.890 MB 2.910 MB +0.7% stable
svelte · heap after load afterLoadMb 1.290 MB 1.290 MB +0.0% stable
svelte · heap after 1k rows after1kMb 3.250 MB 3.240 MB -0.3% stable
svelte · heap after 5× replace after5xReplaceMb 3.420 MB 3.420 MB +0.0% stable
svelte · heap after 10× create/clear afterCreateClear10Mb 2.410 MB 2.410 MB +0.0% stable
svelte · heap after unmount afterUnmountMb 2.370 MB 2.370 MB +0.0% stable
svelte · heap after 5× remount after5xRemountMb 2.390 MB 2.390 MB +0.0% stable
vanilla · heap after load afterLoadMb 1.150 MB 1.150 MB +0.0% stable
vanilla · heap after 1k rows after1kMb 1.900 MB 1.900 MB +0.0% stable
vanilla · heap after 5× replace after5xReplaceMb 1.980 MB 1.980 MB +0.0% stable
vanilla · heap after 10× create/clear afterCreateClear10Mb 1.920 MB 1.920 MB +0.0% stable
vanilla · heap after unmount afterUnmountMb 1.930 MB 1.920 MB -0.5% stable
vanilla · heap after 5× remount after5xRemountMb 1.920 MB 1.920 MB +0.0% stable
compose-web · heap after load afterLoadMb 2.730 MB 2.730 MB +0.0% stable
compose-web · heap after 1k rows after1kMb 17.85 MB 17.86 MB +0.1% stable
compose-web · heap after 5× replace after5xReplaceMb 19.51 MB 19.50 MB -0.1% stable
compose-web · heap after 10× create/clear afterCreateClear10Mb 7.310 MB 7.290 MB -0.3% stable
compose-web · heap after unmount afterUnmountMb 4.660 MB 4.660 MB +0.0% stable
compose-web · heap after 5× remount after5xRemountMb 4.850 MB 4.850 MB +0.0% stable
Sustained updates (28)
ScopeMetricBaselineCurrentChangeStatus
kinetica · animation throughput fps 120.0 fps 120.0 fps +0.0% stable
kinetica · median frame time medianMs 8.300 ms 8.300 ms +0.0% stable
kinetica · p95 frame time p95Ms 9.300 ms 9.300 ms +0.0% stable
kinetica · frames over 25 ms longFramePct 0.0% 0.0% stable
react · animation throughput fps 120.0 fps 120.0 fps +0.0% stable
react · median frame time medianMs 8.300 ms 8.300 ms +0.0% stable
react · p95 frame time p95Ms 10.00 ms 9.300 ms -7.0% improvement
react · frames over 25 ms longFramePct 0.0% 0.0% stable
preact · animation throughput fps 120.0 fps 120.0 fps +0.0% stable
preact · median frame time medianMs 8.300 ms 8.300 ms +0.0% stable
preact · p95 frame time p95Ms 10.20 ms 9.300 ms -8.8% improvement
preact · frames over 25 ms longFramePct 0.0% 0.0% stable
vue · animation throughput fps 120.0 fps 120.0 fps +0.0% stable
vue · median frame time medianMs 8.300 ms 8.300 ms +0.0% stable
vue · p95 frame time p95Ms 10.30 ms 9.300 ms -9.7% improvement
vue · frames over 25 ms longFramePct 0.0% 0.0% stable
svelte · animation throughput fps 120.0 fps 120.0 fps +0.0% stable
svelte · median frame time medianMs 8.300 ms 8.300 ms +0.0% stable
svelte · p95 frame time p95Ms 10.30 ms 9.300 ms -9.7% improvement
svelte · frames over 25 ms longFramePct 0.0% 0.0% stable
vanilla · animation throughput fps 119.8 fps 120.0 fps +0.2% stable
vanilla · median frame time medianMs 8.300 ms 8.300 ms +0.0% stable
vanilla · p95 frame time p95Ms 10.10 ms 9.300 ms -7.9% improvement
vanilla · frames over 25 ms longFramePct 0.0% 0.0% stable
compose-web · animation throughput fps 120.0 fps 120.0 fps -0.0% stable
compose-web · median frame time medianMs 8.300 ms 8.300 ms +0.0% stable
compose-web · p95 frame time p95Ms 9.800 ms 10.10 ms +3.1% stable
compose-web · frames over 25 ms longFramePct 0.0% 0.0% stable
Scaling (108)
ScopeMetricBaselineCurrentChangeStatus
kinetica · select row exponent exponent 0.17 0.13 -23.5% improvement
kinetica · select row at 1,000 rows median 7.250 ms 6.960 ms -4.0% stable
kinetica · select row at 2,000 rows median 7.840 ms 7.350 ms -6.3% improvement
kinetica · select row at 5,000 rows median 7.640 ms 7.710 ms +0.9% stable
kinetica · select row at 10,000 rows median 8.240 ms 8.060 ms -2.2% stable
kinetica · select row at 20,000 rows median 13.71 ms 10.89 ms -20.6% improvement
kinetica · swap two rows exponent exponent 0.76 0.74 -2.6% stable
kinetica · swap two rows at 1,000 rows median 8.850 ms 7.990 ms -9.7% improvement
kinetica · swap two rows at 2,000 rows median 10.32 ms 10.96 ms +6.2% regression
kinetica · swap two rows at 5,000 rows median 17.11 ms 21.72 ms +26.9% regression
kinetica · swap two rows at 10,000 rows median 41.42 ms 37.70 ms -9.0% improvement
kinetica · swap two rows at 20,000 rows median 80.23 ms 71.55 ms -10.8% improvement
kinetica · update every 10th row exponent exponent 0.75 0.74 -1.3% stable
kinetica · update every 10th row at 1,000 rows median 8.290 ms 8.190 ms -1.2% stable
kinetica · update every 10th row at 2,000 rows median 10.95 ms 11.03 ms +0.7% stable
kinetica · update every 10th row at 5,000 rows median 22.90 ms 21.12 ms -7.8% improvement
kinetica · update every 10th row at 10,000 rows median 38.69 ms 37.16 ms -4.0% stable
kinetica · update every 10th row at 20,000 rows median 76.50 ms 75.04 ms -1.9% stable
react · select row exponent exponent 0.16 0.07 -56.3% improvement
react · select row at 1,000 rows median 6.370 ms 8.450 ms +32.7% regression
react · select row at 2,000 rows median 7.200 ms 7.100 ms -1.4% stable
react · select row at 5,000 rows median 8.310 ms 8.730 ms +5.1% regression
react · select row at 10,000 rows median 8.050 ms 8.430 ms +4.7% stable
react · select row at 20,000 rows median 11.03 ms 10.00 ms -9.3% improvement
react · swap two rows exponent exponent 0.33 0.28 -15.2% improvement
react · swap two rows at 1,000 rows median 34.44 ms 34.16 ms -0.8% stable
react · swap two rows at 2,000 rows median 33.83 ms 36.27 ms +7.2% regression
react · swap two rows at 5,000 rows median 44.70 ms 42.18 ms -5.6% improvement
react · swap two rows at 10,000 rows median 58.26 ms 55.29 ms -5.1% improvement
react · swap two rows at 20,000 rows median 91.78 ms 81.51 ms -11.2% improvement
react · update every 10th row exponent exponent 0.81 0.74 -8.6% improvement
react · update every 10th row at 1,000 rows median 6.880 ms 7.570 ms +10.0% regression
react · update every 10th row at 2,000 rows median 9.590 ms 9.090 ms -5.2% improvement
react · update every 10th row at 5,000 rows median 17.10 ms 18.25 ms +6.7% regression
react · update every 10th row at 10,000 rows median 37.50 ms 32.61 ms -13.0% improvement
react · update every 10th row at 20,000 rows median 75.94 ms 67.17 ms -11.5% improvement
preact · select row exponent exponent 0.19 0.13 -31.6% improvement
preact · select row at 1,000 rows median 7.100 ms 7.670 ms +8.0% regression
preact · select row at 2,000 rows median 8.040 ms 7.410 ms -7.8% improvement
preact · select row at 5,000 rows median 8.320 ms 8.100 ms -2.6% stable
preact · select row at 10,000 rows median 8.480 ms 8.360 ms -1.4% stable
preact · select row at 20,000 rows median 14.38 ms 12.12 ms -15.7% improvement
preact · swap two rows exponent exponent 0.76 0.71 -6.6% improvement
preact · swap two rows at 1,000 rows median 7.550 ms 7.340 ms -2.8% stable
preact · swap two rows at 2,000 rows median 8.610 ms 10.42 ms +21.0% regression
preact · swap two rows at 5,000 rows median 15.97 ms 18.30 ms +14.6% regression
preact · swap two rows at 10,000 rows median 35.07 ms 32.24 ms -8.1% improvement
preact · swap two rows at 20,000 rows median 66.96 ms 61.65 ms -7.9% improvement
preact · update every 10th row exponent exponent 0.81 0.76 -6.2% improvement
preact · update every 10th row at 1,000 rows median 7.160 ms 7.380 ms +3.1% stable
preact · update every 10th row at 2,000 rows median 8.570 ms 9.680 ms +13.0% regression
preact · update every 10th row at 5,000 rows median 19.26 ms 19.87 ms +3.2% stable
preact · update every 10th row at 10,000 rows median 36.63 ms 36.66 ms +0.1% stable
preact · update every 10th row at 20,000 rows median 75.71 ms 69.52 ms -8.2% improvement
vue · select row exponent exponent 0.44 0.41 -6.8% improvement
vue · select row at 1,000 rows median 7.950 ms 7.490 ms -5.8% improvement
vue · select row at 2,000 rows median 8.060 ms 8.310 ms +3.1% stable
vue · select row at 5,000 rows median 8.810 ms 7.990 ms -9.3% improvement
vue · select row at 10,000 rows median 15.62 ms 14.54 ms -6.9% improvement
vue · select row at 20,000 rows median 30.74 ms 27.59 ms -10.2% improvement
vue · swap two rows exponent exponent 0.77 0.76 -1.3% stable
vue · swap two rows at 1,000 rows median 7.950 ms 8.300 ms +4.4% stable
vue · swap two rows at 2,000 rows median 13.20 ms 11.97 ms -9.3% improvement
vue · swap two rows at 5,000 rows median 26.64 ms 26.09 ms -2.1% stable
vue · swap two rows at 10,000 rows median 42.48 ms 42.91 ms +1.0% stable
vue · swap two rows at 20,000 rows median 81.60 ms 78.18 ms -4.2% stable
vue · update every 10th row exponent exponent 0.80 0.78 -2.5% stable
vue · update every 10th row at 1,000 rows median 7.820 ms 8.780 ms +12.3% regression
vue · update every 10th row at 2,000 rows median 13.55 ms 11.83 ms -12.7% improvement
vue · update every 10th row at 5,000 rows median 21.26 ms 24.31 ms +14.3% regression
vue · update every 10th row at 10,000 rows median 43.34 ms 43.76 ms +1.0% stable
vue · update every 10th row at 20,000 rows median 93.04 ms 90.04 ms -3.2% stable
svelte · select row exponent exponent 0.04 -0.02 -150.0% improvement
svelte · select row at 1,000 rows median 7.270 ms 8.280 ms +13.9% regression
svelte · select row at 2,000 rows median 7.390 ms 8.890 ms +20.3% regression
svelte · select row at 5,000 rows median 7.760 ms 8.310 ms +7.1% regression
svelte · select row at 10,000 rows median 7.550 ms 7.930 ms +5.0% regression
svelte · select row at 20,000 rows median 8.470 ms 8.310 ms -1.9% stable
svelte · swap two rows exponent exponent 0.72 0.65 -9.7% improvement
svelte · swap two rows at 1,000 rows median 7.300 ms 8.420 ms +15.3% regression
svelte · swap two rows at 2,000 rows median 8.040 ms 9.260 ms +15.2% regression
svelte · swap two rows at 5,000 rows median 14.72 ms 17.45 ms +18.5% regression
svelte · swap two rows at 10,000 rows median 29.60 ms 29.81 ms +0.7% stable
svelte · swap two rows at 20,000 rows median 59.55 ms 56.20 ms -5.6% improvement
svelte · update every 10th row exponent exponent 0.74 0.67 -9.5% improvement
svelte · update every 10th row at 1,000 rows median 7.240 ms 8.070 ms +11.5% regression
svelte · update every 10th row at 2,000 rows median 8.260 ms 9.750 ms +18.0% regression
svelte · update every 10th row at 5,000 rows median 17.98 ms 16.55 ms -8.0% improvement
svelte · update every 10th row at 10,000 rows median 31.84 ms 30.87 ms -3.0% stable
svelte · update every 10th row at 20,000 rows median 60.46 ms 59.02 ms -2.4% stable
vanilla · select row exponent exponent 0.05 0.05 +0.0% stable
vanilla · select row at 1,000 rows median 6.850 ms 7.080 ms +3.4% stable
vanilla · select row at 2,000 rows median 7.070 ms 7.800 ms +10.3% regression
vanilla · select row at 5,000 rows median 8.050 ms 8.160 ms +1.4% stable
vanilla · select row at 10,000 rows median 8.250 ms 7.880 ms -4.5% stable
vanilla · select row at 20,000 rows median 7.700 ms 8.410 ms +9.2% regression
vanilla · swap two rows exponent exponent 0.72 0.67 -6.9% improvement
vanilla · swap two rows at 1,000 rows median 7.020 ms 7.170 ms +2.1% stable
vanilla · swap two rows at 2,000 rows median 8.950 ms 9.290 ms +3.8% stable
vanilla · swap two rows at 5,000 rows median 12.89 ms 15.41 ms +19.6% regression
vanilla · swap two rows at 10,000 rows median 27.78 ms 27.76 ms -0.1% stable
vanilla · swap two rows at 20,000 rows median 62.77 ms 52.73 ms -16.0% improvement
vanilla · update every 10th row exponent exponent 0.81 0.73 -9.9% improvement
vanilla · update every 10th row at 1,000 rows median 6.480 ms 8.050 ms +24.2% regression
vanilla · update every 10th row at 2,000 rows median 8.100 ms 8.630 ms +6.5% regression
vanilla · update every 10th row at 5,000 rows median 18.51 ms 17.44 ms -5.8% improvement
vanilla · update every 10th row at 10,000 rows median 34.20 ms 31.63 ms -7.5% improvement
vanilla · update every 10th row at 20,000 rows median 69.52 ms 67.19 ms -3.4% stable
JVM microbenchmarks (9)
ScopeMetricBaselineCurrentChangeStatus
write + recompute through 10,000-wide derived fan medianMs 3.125 ms 1.087 ms -65.2% improvement
cached read of a join over 10,000 unchanged dependencies medianMs 0.000 ms 0.000 ms -33.3% improvement
write + lazy read through 1,000-deep derived chain medianMs 0.775 ms 0.067 ms -91.4% improvement
write + lazy read through 500-deep derived chain (complexity probe: 1k should cost ~2x this = linear) medianMs 0.071 ms 0.081 ms +13.9% regression
write + recompute through 100-wide diamond medianMs 0.030 ms 0.015 ms -50.2% improvement
render 1,000-row table Node tree (fresh runtime) medianMs 4.313 ms 1.895 ms -56.1% improvement
re-render 1,000-row table after updating every 10th row medianMs 1.702 ms 0.531 ms -68.8% improvement
parse all docs-site markdown (80 KB) medianMs 3.213 ms 1.406 ms -56.2% improvement
SSR: render parsed docs markdown to HTML string medianMs 6.181 ms 2.437 ms -60.6% improvement
Bundle sizes (12)
ScopeMetricBaselineCurrentChangeStatus
kinetica/browser-bench-bundle gzipBytes 86.1 KB 86.1 KB +0.0% stable
kinetica/browser-bench-js gzipBytes 274.7 KB 274.7 KB -0.0% stable
bench/vanilla gzipBytes 1.2 KB 1.2 KB +0.0% stable
bench/react gzipBytes 60.3 KB 60.3 KB +0.0% stable
bench/preact gzipBytes 8.6 KB 8.6 KB +0.0% stable
bench/vue gzipBytes 65.2 KB 65.2 KB +0.0% stable
bench/svelte gzipBytes 20.8 KB 20.8 KB +0.0% stable
bench/vanilla-tree gzipBytes 0.8 KB 0.8 KB +0.0% stable
bench/react-tree gzipBytes 59.6 KB 59.6 KB +0.0% stable
bench/preact-tree gzipBytes 5.9 KB 5.9 KB +0.0% stable
bench/vue-tree gzipBytes 64.8 KB 64.8 KB +0.0% stable
bench/svelte-tree gzipBytes 20.2 KB 20.2 KB +0.0% stable

Scope and metric definitions

Current
20260716T215731619Z
Baseline
accepted (no complete versioned run yet)
Threshold
5% direction-adjusted change
Browser aggregate
Geometric mean of per-operation current median / baseline median for common scenarios.
Status
Lower is better except FPS. Stable means absolute direction-adjusted change is below the threshold.

Methodology and robustness

Only metrics present in both runs are compared. No missing value is imputed. Browser identity checks cover Chromium, CPU, architecture, platform and throttle where recorded; JVM checks cover runtime and OS. Sample distributions are retained in source JSON, while this report compares medians.

Limitations

Recommended next steps

Further questions

Do the largest deltas reproduce in a second run, and do CPU profiles or allocation traces explain them?