Benchmark Overview

JS Reactivity Benchmark

Propagation, graph, and computation stress tests. Lower average runtime wins.

Leader: reflex
Tests: 35
Frameworks: 14
Best Average 184.04 ms

reflex leads the full suite.

Closest Rival alien-signals

3.1% behind the leader.

Most Wins reflex

19 first-place finishes across individual tests.

Run Snapshot 35 tests

Updated April 12, 2026 at 07:41 PM UTC. Auto-generated from bench-results/latest.log. Slowest to fastest spread: 3.71x.

Leaderboard

# Framework Avg, ms
1reflex184.04
2alien-signals189.77
3@reactively231.90
4Oby308.67
5s-js312.64
6@amadeus-it-group/tans326.78
7$mol_wire389.54
8Preact Signals389.95
9uSignal411.37
10Signia481.87
11SolidJS562.55
12@vue/reactivity595.36
13@solidjs/signals618.05
14MobX683.42

Average across 35 tests for 14 frameworks.

#1 baseline

reflex

184.04 ms avg
19 wins 35 results
#2 +3.1%

alien-signals

189.77 ms avg
14 wins 35 results
#3 +26.0%

@reactively

231.90 ms avg
1 wins 35 results
#4 +67.7%

Oby

308.67 ms avg
0 wins 35 results
#5 +69.9%

s-js

312.64 ms avg
0 wins 35 results
#6 +77.6%

@amadeus-it-group/tans

326.78 ms avg
0 wins 35 results
#7 +111.7%

$mol_wire

389.54 ms avg
1 wins 35 results
#8 +111.9%

Preact Signals

389.95 ms avg
0 wins 35 results
#9 +123.5%

uSignal

411.37 ms avg
0 wins 35 results
#10 +161.8%

Signia

481.87 ms avg
0 wins 35 results
#11 +205.7%

SolidJS

562.55 ms avg
0 wins 35 results
#12 +223.5%

@vue/reactivity

595.36 ms avg
0 wins 35 results
#13 +235.8%

@solidjs/signals

618.05 ms avg
0 wins 35 results
#14 +271.3%

MobX

683.42 ms avg
0 wins 35 results

Visual Comparison

reflex
184.04
alien-signals
189.77
@reactively
231.90
Oby
308.67
s-js
312.64
@amadeus-it-group/tans
326.78
$mol_wire
389.54
Preact Signals
389.95
uSignal
411.37
Signia
481.87
SolidJS
562.55
@vue/reactivity
595.36
@solidjs/signals
618.05
MobX
683.42

Each bar shows average runtime relative to the slowest average in this run.

Per-Test Comparison

Every card ranks frameworks for a single scenario, so outliers and specialists stay visible.

avoidablePropagation

1
alien-signals
341.28 ms
best
2
Preact Signals
416.20 ms
+22.0%
3
reflex
470.53 ms
+37.9%
4
@reactively
480.60 ms
+40.8%
5
s-js
538.55 ms
+57.8%
6
Oby
558.78 ms
+63.7%
7
@vue/reactivity
632.52 ms
+85.3%
8
@amadeus-it-group/tans
636.90 ms
+86.6%
9
Signia
658.92 ms
+93.1%
10
$mol_wire
738.05 ms
+116.3%
11
SolidJS
746.74 ms
+118.8%
12
@solidjs/signals
839.70 ms
+146.0%
13
uSignal
1053.98 ms
+208.8%
14
MobX
1199.15 ms
+251.4%

broadPropagation

1
alien-signals
230.88 ms
best
2
s-js
283.91 ms
+23.0%
3
Preact Signals
298.20 ms
+29.2%
4
@reactively
367.39 ms
+59.1%
5
reflex
488.97 ms
+111.8%
6
@vue/reactivity
521.11 ms
+125.7%
7
Signia
610.76 ms
+164.5%
8
Oby
670.78 ms
+190.5%
9
@amadeus-it-group/tans
763.88 ms
+230.9%
10
SolidJS
887.45 ms
+284.4%
11
uSignal
951.69 ms
+312.2%
12
$mol_wire
1386.55 ms
+500.6%
13
@solidjs/signals
1719.99 ms
+645.0%
14
MobX
2478.36 ms
+973.4%

deepPropagation

1
alien-signals
91.82 ms
best
2
s-js
98.61 ms
+7.4%
3
reflex
116.16 ms
+26.5%
4
Preact Signals
139.69 ms
+52.1%
5
@reactively
151.34 ms
+64.8%
6
@vue/reactivity
202.54 ms
+120.6%
7
Signia
234.83 ms
+155.8%
8
@amadeus-it-group/tans
252.23 ms
+174.7%
9
Oby
277.01 ms
+201.7%
10
uSignal
321.82 ms
+250.5%
11
SolidJS
326.66 ms
+255.8%
12
$mol_wire
404.89 ms
+341.0%
13
@solidjs/signals
581.69 ms
+533.5%
14
MobX
846.76 ms
+822.2%

diamond

1
alien-signals
273.73 ms
best
2
s-js
367.97 ms
+34.4%
3
@reactively
375.94 ms
+37.3%
4
Preact Signals
400.65 ms
+46.4%
5
reflex
454.05 ms
+65.9%
6
@amadeus-it-group/tans
507.69 ms
+85.5%
7
@vue/reactivity
518.45 ms
+89.4%
8
Oby
526.21 ms
+92.2%
9
Signia
554.88 ms
+102.7%
10
uSignal
709.63 ms
+159.2%
11
SolidJS
744.67 ms
+172.0%
12
$mol_wire
749.77 ms
+173.9%
13
@solidjs/signals
1286.57 ms
+370.0%
14
MobX
1432.98 ms
+423.5%

mux

1
alien-signals
265.03 ms
best
2
@reactively
308.54 ms
+16.4%
3
Preact Signals
313.16 ms
+18.2%
4
s-js
372.88 ms
+40.7%
5
reflex
415.94 ms
+56.9%
6
Oby
429.13 ms
+61.9%
7
@vue/reactivity
517.68 ms
+95.3%
8
SolidJS
523.30 ms
+97.4%
9
Signia
536.78 ms
+102.5%
10
@solidjs/signals
553.29 ms
+108.8%
11
@amadeus-it-group/tans
572.87 ms
+116.2%
12
$mol_wire
761.38 ms
+187.3%
13
uSignal
836.98 ms
+215.8%
14
MobX
940.99 ms
+255.1%

repeatedObservers

1
alien-signals
42.41 ms
best
2
reflex
52.08 ms
+22.8%
3
Preact Signals
52.68 ms
+24.2%
4
@vue/reactivity
64.13 ms
+51.2%
5
@reactively
78.86 ms
+85.9%
6
Oby
84.23 ms
+98.6%
7
uSignal
96.76 ms
+128.2%
8
@amadeus-it-group/tans
102.90 ms
+142.6%
9
Signia
103.81 ms
+144.8%
10
s-js
104.58 ms
+146.6%
11
MobX
136.49 ms
+221.8%
12
$mol_wire
157.28 ms
+270.9%
13
SolidJS
183.92 ms
+333.7%
14
@solidjs/signals
217.51 ms
+412.9%

triangle

1
alien-signals
85.41 ms
best
2
@reactively
111.11 ms
+30.1%
3
s-js
111.74 ms
+30.8%
4
reflex
112.64 ms
+31.9%
5
Preact Signals
125.89 ms
+47.4%
6
@vue/reactivity
152.92 ms
+79.0%
7
@amadeus-it-group/tans
155.74 ms
+82.3%
8
Oby
175.02 ms
+104.9%
9
Signia
178.09 ms
+108.5%
10
uSignal
218.10 ms
+155.4%
11
$mol_wire
248.92 ms
+191.4%
12
SolidJS
253.01 ms
+196.2%
13
@solidjs/signals
401.26 ms
+369.8%
14
MobX
466.93 ms
+446.7%

unstable

1
alien-signals
60.42 ms
best
2
Preact Signals
62.45 ms
+3.4%
3
reflex
72.62 ms
+20.2%
4
Oby
96.57 ms
+59.8%
5
@vue/reactivity
102.75 ms
+70.1%
6
uSignal
104.46 ms
+72.9%
7
Signia
126.00 ms
+108.5%
8
s-js
130.01 ms
+115.2%
9
@reactively
165.67 ms
+174.2%
10
@amadeus-it-group/tans
198.10 ms
+227.9%
11
SolidJS
231.09 ms
+282.5%
12
MobX
269.72 ms
+346.4%
13
@solidjs/signals
299.66 ms
+396.0%
14
$mol_wire
345.79 ms
+472.3%

molBench

1
$mol_wire
454.31 ms
best
2
Preact Signals
570.48 ms
+25.6%
3
alien-signals
571.93 ms
+25.9%
4
reflex
581.87 ms
+28.1%
5
@reactively
588.14 ms
+29.5%
6
Signia
593.81 ms
+30.7%
7
@amadeus-it-group/tans
597.83 ms
+31.6%
8
MobX
633.85 ms
+39.5%
9
Oby
696.36 ms
+53.3%
10
SolidJS
702.09 ms
+54.5%
11
@solidjs/signals
736.81 ms
+62.2%
12
uSignal
802.84 ms
+76.7%
13
s-js
904.69 ms
+99.1%
14
@vue/reactivity
1245.26 ms
+174.1%

createDataSignals

1
reflex
8.13 ms
best
2
Preact Signals
48.34 ms
+494.6%
3
@reactively
48.44 ms
+495.8%
4
Oby
55.53 ms
+583.0%
5
$mol_wire
55.93 ms
+587.9%
6
Signia
56.08 ms
+589.8%
7
@vue/reactivity
57.84 ms
+611.4%
8
MobX
58.52 ms
+619.8%
9
s-js
68.13 ms
+738.0%
10
@amadeus-it-group/tans
73.66 ms
+806.0%
11
@solidjs/signals
76.02 ms
+835.1%
12
uSignal
79.73 ms
+880.7%
13
SolidJS
86.14 ms
+959.5%
14
alien-signals
140.63 ms
+1629.8%

createComputations0to1

1
reflex
4.81 ms
best
2
Preact Signals
56.46 ms
+1073.8%
3
@reactively
59.17 ms
+1130.1%
4
SolidJS
62.74 ms
+1204.4%
5
$mol_wire
64.55 ms
+1242.0%
6
Signia
66.65 ms
+1285.7%
7
MobX
66.85 ms
+1289.8%
8
s-js
67.69 ms
+1307.3%
9
uSignal
71.17 ms
+1379.6%
10
@amadeus-it-group/tans
74.64 ms
+1451.8%
11
@vue/reactivity
78.80 ms
+1538.3%
12
alien-signals
100.63 ms
+1992.1%
13
@solidjs/signals
104.54 ms
+2073.4%
14
Oby
137.03 ms
+2748.9%

createComputations1to1

1
reflex
8.58 ms
best
2
@reactively
56.38 ms
+557.1%
3
Preact Signals
57.01 ms
+564.5%
4
@vue/reactivity
60.00 ms
+599.3%
5
Signia
63.44 ms
+639.4%
6
@amadeus-it-group/tans
67.90 ms
+691.4%
7
MobX
72.89 ms
+749.5%
8
$mol_wire
74.99 ms
+774.0%
9
uSignal
86.96 ms
+913.5%
10
s-js
92.71 ms
+980.5%
11
alien-signals
98.97 ms
+1053.5%
12
Oby
111.80 ms
+1203.0%
13
SolidJS
119.41 ms
+1291.7%
14
@solidjs/signals
166.64 ms
+1842.2%

createComputations2to1

1
reflex
5.27 ms
best
2
Preact Signals
59.81 ms
+1034.9%
3
alien-signals
60.60 ms
+1049.9%
4
@reactively
61.37 ms
+1064.5%
5
@amadeus-it-group/tans
62.25 ms
+1081.2%
6
$mol_wire
66.82 ms
+1167.9%
7
@vue/reactivity
70.48 ms
+1237.4%
8
MobX
72.99 ms
+1285.0%
9
s-js
73.50 ms
+1294.7%
10
Signia
73.74 ms
+1299.2%
11
uSignal
77.32 ms
+1367.2%
12
Oby
87.52 ms
+1560.7%
13
SolidJS
124.14 ms
+2255.6%
14
@solidjs/signals
141.23 ms
+2579.9%

createComputations4to1

1
reflex
7.92 ms
best
2
$mol_wire
58.95 ms
+644.3%
3
Preact Signals
59.56 ms
+652.0%
4
s-js
62.66 ms
+691.2%
5
@vue/reactivity
67.86 ms
+756.8%
6
MobX
68.50 ms
+764.9%
7
Signia
68.99 ms
+771.1%
8
SolidJS
70.32 ms
+787.9%
9
@reactively
100.01 ms
+1162.8%
10
alien-signals
100.65 ms
+1170.8%
11
Oby
113.05 ms
+1327.4%
12
@solidjs/signals
124.70 ms
+1474.5%
13
@amadeus-it-group/tans
150.64 ms
+1802.0%
14
uSignal
166.68 ms
+2004.5%

createComputations1000to1

1
reflex
4.60 ms
best
2
alien-signals
48.70 ms
+958.7%
3
@reactively
48.95 ms
+964.1%
4
MobX
53.57 ms
+1064.6%
5
uSignal
54.07 ms
+1075.4%
6
@amadeus-it-group/tans
54.51 ms
+1085.0%
7
Preact Signals
55.86 ms
+1114.3%
8
@vue/reactivity
59.44 ms
+1192.2%
9
SolidJS
62.43 ms
+1257.2%
10
$mol_wire
63.42 ms
+1278.7%
11
s-js
65.81 ms
+1330.7%
12
Signia
69.39 ms
+1408.5%
13
Oby
146.29 ms
+3080.2%
14
@solidjs/signals
178.89 ms
+3788.9%

createComputations1to2

1
reflex
5.82 ms
best
2
@reactively
49.91 ms
+757.6%
3
Preact Signals
51.67 ms
+787.8%
4
alien-signals
58.82 ms
+910.7%
5
Signia
61.12 ms
+950.2%
6
s-js
62.19 ms
+968.6%
7
@vue/reactivity
62.22 ms
+969.1%
8
@amadeus-it-group/tans
67.68 ms
+1062.9%
9
$mol_wire
68.68 ms
+1080.1%
10
MobX
69.85 ms
+1100.2%
11
uSignal
76.59 ms
+1216.0%
12
SolidJS
93.24 ms
+1502.1%
13
Oby
96.48 ms
+1557.7%
14
@solidjs/signals
142.27 ms
+2344.5%

createComputations1to4

1
reflex
6.34 ms
best
2
alien-signals
48.25 ms
+661.0%
3
@reactively
54.55 ms
+760.4%
4
Preact Signals
56.66 ms
+793.7%
5
@vue/reactivity
57.42 ms
+805.7%
6
s-js
63.24 ms
+897.5%
7
Signia
64.20 ms
+912.6%
8
SolidJS
69.39 ms
+994.5%
9
@amadeus-it-group/tans
71.85 ms
+1033.3%
10
MobX
75.35 ms
+1088.5%
11
uSignal
79.63 ms
+1156.0%
12
$mol_wire
83.00 ms
+1209.1%
13
@solidjs/signals
125.37 ms
+1877.4%
14
Oby
153.98 ms
+2328.7%

createComputations1to8

1
reflex
3.91 ms
best
2
alien-signals
50.54 ms
+1192.6%
3
s-js
58.35 ms
+1392.3%
4
Signia
65.28 ms
+1569.6%
5
@vue/reactivity
67.07 ms
+1615.3%
6
$mol_wire
68.31 ms
+1647.1%
7
@amadeus-it-group/tans
69.26 ms
+1671.4%
8
MobX
72.09 ms
+1743.7%
9
SolidJS
77.85 ms
+1891.0%
10
uSignal
78.06 ms
+1896.4%
11
@solidjs/signals
126.63 ms
+3138.6%
12
Oby
136.66 ms
+3395.1%
13
@reactively
144.59 ms
+3598.0%
14
Preact Signals
145.96 ms
+3633.0%

createComputations1to1000

1
reflex
5.88 ms
best
2
alien-signals
48.92 ms
+732.0%
3
Signia
53.38 ms
+807.8%
4
@amadeus-it-group/tans
60.76 ms
+933.3%
5
@vue/reactivity
62.59 ms
+964.5%
6
Preact Signals
64.18 ms
+991.5%
7
$mol_wire
65.91 ms
+1020.9%
8
uSignal
69.03 ms
+1074.0%
9
s-js
73.41 ms
+1148.5%
10
SolidJS
74.45 ms
+1166.2%
11
@reactively
102.40 ms
+1641.5%
12
MobX
118.54 ms
+1916.0%
13
Oby
126.28 ms
+2047.6%
14
@solidjs/signals
131.83 ms
+2142.0%

updateComputations1to1

1
reflex
7.36 ms
best
2
@reactively
52.91 ms
+618.9%
3
@vue/reactivity
55.29 ms
+651.2%
4
uSignal
56.20 ms
+663.6%
5
@solidjs/signals
56.63 ms
+669.4%
6
$mol_wire
59.08 ms
+702.7%
7
Preact Signals
60.46 ms
+721.5%
8
MobX
62.83 ms
+753.7%
9
Oby
70.27 ms
+854.8%
10
Signia
75.72 ms
+928.8%
11
s-js
88.89 ms
+1107.7%
12
SolidJS
135.75 ms
+1744.4%
13
@amadeus-it-group/tans
149.35 ms
+1929.2%
14
alien-signals
153.96 ms
+1991.8%

updateComputations2to1

1
reflex
6.34 ms
best
2
uSignal
47.99 ms
+656.9%
3
$mol_wire
50.66 ms
+699.1%
4
Oby
54.25 ms
+755.7%
5
Preact Signals
58.54 ms
+823.3%
6
@vue/reactivity
60.72 ms
+857.7%
7
@solidjs/signals
61.47 ms
+869.6%
8
@amadeus-it-group/tans
65.24 ms
+929.0%
9
alien-signals
66.31 ms
+945.9%
10
Signia
75.69 ms
+1093.8%
11
MobX
76.18 ms
+1101.6%
12
SolidJS
89.63 ms
+1313.7%
13
s-js
90.08 ms
+1320.8%
14
@reactively
104.95 ms
+1555.4%

updateComputations4to1

1
reflex
5.71 ms
best
2
alien-signals
46.31 ms
+711.0%
3
uSignal
46.87 ms
+720.8%
4
Oby
47.78 ms
+736.8%
5
@vue/reactivity
53.18 ms
+831.3%
6
@amadeus-it-group/tans
56.95 ms
+897.4%
7
MobX
61.47 ms
+976.5%
8
Signia
64.94 ms
+1037.3%
9
$mol_wire
65.55 ms
+1048.0%
10
@solidjs/signals
66.20 ms
+1059.4%
11
s-js
70.08 ms
+1127.3%
12
SolidJS
82.28 ms
+1341.0%
13
@reactively
138.66 ms
+2328.4%
14
Preact Signals
144.37 ms
+2428.4%

updateComputations1000to1

1
reflex
2.80 ms
best
2
Signia
45.75 ms
+1533.9%
3
uSignal
46.18 ms
+1549.3%
4
$mol_wire
49.44 ms
+1665.7%
5
@solidjs/signals
50.17 ms
+1691.8%
6
Oby
50.81 ms
+1714.6%
7
@amadeus-it-group/tans
54.14 ms
+1833.6%
8
@vue/reactivity
55.29 ms
+1874.6%
9
MobX
57.22 ms
+1943.6%
10
Preact Signals
59.46 ms
+2023.6%
11
alien-signals
60.65 ms
+2066.1%
12
s-js
74.82 ms
+2572.1%
13
SolidJS
105.91 ms
+3682.5%
14
@reactively
135.58 ms
+4742.1%

updateComputations1to2

1
reflex
5.78 ms
best
2
Oby
49.43 ms
+755.2%
3
$mol_wire
51.29 ms
+787.4%
4
@vue/reactivity
55.00 ms
+851.6%
5
@reactively
55.86 ms
+866.4%
6
@amadeus-it-group/tans
58.00 ms
+903.5%
7
uSignal
59.00 ms
+920.8%
8
MobX
59.04 ms
+921.5%
9
@solidjs/signals
60.42 ms
+945.3%
10
Signia
63.84 ms
+1004.5%
11
alien-signals
66.73 ms
+1054.5%
12
s-js
101.81 ms
+1661.4%
13
SolidJS
117.72 ms
+1936.7%
14
Preact Signals
142.39 ms
+2363.5%

updateComputations1to4

1
reflex
5.43 ms
best
2
Preact Signals
48.36 ms
+790.6%
3
$mol_wire
53.04 ms
+876.8%
4
uSignal
56.29 ms
+936.6%
5
Oby
57.22 ms
+953.8%
6
@solidjs/signals
59.44 ms
+994.7%
7
@vue/reactivity
61.41 ms
+1030.9%
8
Signia
61.78 ms
+1037.8%
9
@amadeus-it-group/tans
63.89 ms
+1076.6%
10
MobX
71.32 ms
+1213.4%
11
s-js
80.64 ms
+1385.1%
12
@reactively
99.98 ms
+1741.3%
13
SolidJS
111.25 ms
+1948.8%
14
alien-signals
154.11 ms
+2738.1%

updateComputations1to1000

1
reflex
3.10 ms
best
2
@vue/reactivity
45.58 ms
+1370.3%
3
Signia
46.47 ms
+1399.0%
4
alien-signals
47.19 ms
+1422.3%
5
@solidjs/signals
50.05 ms
+1514.5%
6
uSignal
58.33 ms
+1781.6%
7
Oby
61.56 ms
+1885.8%
8
$mol_wire
63.59 ms
+1951.3%
9
@amadeus-it-group/tans
65.08 ms
+1999.4%
10
s-js
91.55 ms
+2853.2%
11
SolidJS
98.96 ms
+3092.3%
12
@reactively
136.31 ms
+4297.1%
13
Preact Signals
141.65 ms
+4469.4%
14
MobX
145.17 ms
+4582.9%

64x6 - 4 sources - dynamic - read 12% (dashboard selective r

1
alien-signals
322.71 ms
best
2
reflex
352.12 ms
+9.1%
3
@reactively
424.13 ms
+31.4%
4
Oby
635.34 ms
+96.9%
5
@amadeus-it-group/tans
689.35 ms
+113.6%
6
Preact Signals
798.59 ms
+147.5%
7
uSignal
844.01 ms
+161.5%
8
$mol_wire
844.24 ms
+161.6%
9
Signia
1026.15 ms
+218.0%
10
s-js
1117.81 ms
+246.4%
11
@vue/reactivity
1277.22 ms
+295.8%
12
MobX
1585.55 ms
+391.3%
13
@solidjs/signals
2260.02 ms
+600.3%
14
SolidJS
2422.78 ms
+650.8%

24x8 - 3 sources - dynamic - read 40% (editor derived state)

1
alien-signals
483.96 ms
best
2
reflex
549.59 ms
+13.6%
3
Preact Signals
733.83 ms
+51.6%
4
@reactively
736.91 ms
+52.3%
5
s-js
908.88 ms
+87.8%
6
Oby
955.39 ms
+97.4%
7
@amadeus-it-group/tans
1069.37 ms
+121.0%
8
Signia
1090.47 ms
+125.3%
9
@vue/reactivity
1186.63 ms
+145.2%
10
uSignal
1260.57 ms
+160.5%
11
$mol_wire
1274.97 ms
+163.4%
12
SolidJS
2015.02 ms
+316.4%
13
@solidjs/signals
2019.85 ms
+317.4%
14
MobX
2503.34 ms
+417.3%

120x7 - 5 sources - dynamic - read 18% (kanban board)

1
alien-signals
277.04 ms
best
2
reflex
288.67 ms
+4.2%
3
@reactively
361.51 ms
+30.5%
4
Oby
513.87 ms
+85.5%
5
@amadeus-it-group/tans
553.82 ms
+99.9%
6
$mol_wire
639.50 ms
+130.8%
7
s-js
693.37 ms
+150.3%
8
uSignal
838.92 ms
+202.8%
9
Preact Signals
965.18 ms
+248.4%
10
Signia
1061.71 ms
+283.2%
11
MobX
1236.51 ms
+346.3%
12
SolidJS
1281.91 ms
+362.7%
13
@solidjs/signals
1292.19 ms
+366.4%
14
@vue/reactivity
1792.20 ms
+546.9%

40x10 - 4 sources - dynamic - read 60% (entity detail page)

1
reflex
554.44 ms
best
2
alien-signals
568.15 ms
+2.5%
3
@reactively
641.16 ms
+15.6%
4
Preact Signals
692.58 ms
+24.9%
5
s-js
904.86 ms
+63.2%
6
Oby
933.67 ms
+68.4%
7
@amadeus-it-group/tans
1025.39 ms
+84.9%
8
Signia
1110.96 ms
+100.4%
9
$mol_wire
1194.69 ms
+115.5%
10
uSignal
1284.27 ms
+131.6%
11
@vue/reactivity
1373.10 ms
+147.7%
12
@solidjs/signals
1815.80 ms
+227.5%
13
SolidJS
1919.85 ms
+246.3%
14
MobX
2497.19 ms
+350.4%

10x5 - 2 sources - read 20% (simple component)

1
alien-signals
260.69 ms
best
2
@reactively
309.18 ms
+18.6%
3
Preact Signals
385.46 ms
+47.9%
4
reflex
393.33 ms
+50.9%
5
Oby
501.55 ms
+92.4%
6
Signia
516.64 ms
+98.2%
7
@amadeus-it-group/tans
550.54 ms
+111.2%
8
@vue/reactivity
561.93 ms
+115.6%
9
uSignal
623.81 ms
+139.3%
10
$mol_wire
774.56 ms
+197.1%
11
s-js
815.70 ms
+212.9%
12
MobX
1328.43 ms
+409.6%
13
SolidJS
2056.17 ms
+688.7%
14
@solidjs/signals
2570.62 ms
+886.1%

10x10 - 6 sources - dynamic - read 20% (dynamic component)

1
alien-signals
221.14 ms
best
2
reflex
233.47 ms
+5.6%
3
Preact Signals
246.64 ms
+11.5%
4
Signia
315.53 ms
+42.7%
5
@reactively
319.47 ms
+44.5%
6
@amadeus-it-group/tans
381.68 ms
+72.6%
7
@vue/reactivity
392.72 ms
+77.6%
8
Oby
400.86 ms
+81.3%
9
$mol_wire
464.36 ms
+110.0%
10
s-js
478.77 ms
+116.5%
11
uSignal
566.52 ms
+156.2%
12
@solidjs/signals
707.49 ms
+219.9%
13
SolidJS
728.70 ms
+229.5%
14
MobX
1006.23 ms
+355.0%

1000x12 - 4 sources - dynamic (large web app)

1
reflex
388.65 ms
best
2
alien-signals
426.19 ms
+9.7%
3
@reactively
429.61 ms
+10.5%
4
s-js
520.04 ms
+33.8%
5
Oby
619.60 ms
+59.4%
6
$mol_wire
758.50 ms
+95.2%
7
uSignal
762.12 ms
+96.1%
8
@amadeus-it-group/tans
773.59 ms
+99.0%
9
@solidjs/signals
912.59 ms
+134.8%
10
SolidJS
1103.52 ms
+183.9%
11
MobX
1322.02 ms
+240.2%
12
Preact Signals
3423.72 ms
+780.9%
13
@vue/reactivity
3592.00 ms
+824.2%
14
Signia
4225.76 ms
+987.3%

1000x5 - 25 sources (wide dense)

1
@reactively
567.90 ms
best
2
alien-signals
577.86 ms
+1.8%
3
reflex
599.88 ms
+5.6%
4
Oby
834.30 ms
+46.9%
5
$mol_wire
914.29 ms
+61.0%
6
@amadeus-it-group/tans
922.36 ms
+62.4%
7
s-js
1003.70 ms
+76.7%
8
@solidjs/signals
1169.03 ms
+105.9%
9
SolidJS
1441.90 ms
+153.9%
10
uSignal
1452.72 ms
+155.8%
11
MobX
1983.14 ms
+249.2%
12
Preact Signals
2512.89 ms
+342.5%
13
Signia
2577.17 ms
+353.8%
14
@vue/reactivity
5362.48 ms
+844.3%

5x500 - 3 sources (deep)

1
alien-signals
189.40 ms
best
2
Preact Signals
199.29 ms
+5.2%
3
reflex
218.69 ms
+15.5%
4
@reactively
248.92 ms
+31.4%
5
Signia
266.77 ms
+40.9%
6
s-js
300.71 ms
+58.8%
7
@vue/reactivity
311.90 ms
+64.7%
8
Oby
338.95 ms
+79.0%
9
@amadeus-it-group/tans
417.10 ms
+120.2%
10
$mol_wire
458.54 ms
+142.1%
11
uSignal
458.71 ms
+142.2%
12
@solidjs/signals
525.07 ms
+177.2%
13
SolidJS
538.81 ms
+184.5%
14
MobX
789.59 ms
+316.9%

How To Read This

reflex is the strongest result in this run with the best average runtime, 3.1% ahead of alien-signals. It also takes 19 of 35 scenario wins, while alien-signals takes 14.

That usually points to an advantage in update-heavy, graph-propagation, and computation-creation workloads covered by this suite, not a universal guarantee for every production app.

Real-world performance still depends on rendering cost, memory pressure, batching strategy, cache locality, framework ergonomics, and whether your app looks more like the fast scenarios or the outliers shown above.