Benchmark Overview

JS Reactivity Benchmark

Reactive graph benchmarks reported as topology profiles. Lower relative score and tighter p95/p99 tails are better.

Leader: reflex
Tests: 45
Frameworks: 14
Best Profile 1.11x

reflex has the lowest geometric mean vs per-test best.

Closest Rival alien-signals

7.7% behind the leader by relative profile.

Most Wins reflex

28 first-place finishes across individual tests.

Tail Snapshot 45 tests

Updated July 12, 2026 at 07:57 PM UTC. Leader p95 avg: n/a. Spread: 10.71x.

Leaderboard

# Framework Rel.
1reflex1.11x
2alien-signals1.20x
3@reactively1.60x
4lite-signal2.19x
5Preact Signals2.46x
6Oby3.66x
7@vue/reactivity4.05x
8uSignal4.06x
9@amadeus-it-group/tans4.17x
10$mol_wire4.27x
11@solidjs/signals5.64x
12Signia5.77x
13s-js7.47x
14SolidJS11.89x

Geometric mean of relative slowdown across 45 tests for 14 frameworks.

#1 baseline

reflex

1.11x geomean
28 wins 0 capped
#2 +7.7%

alien-signals

1.20x geomean
13 wins 0 capped
#3 +43.9%

@reactively

1.60x geomean
1 wins 0 capped
#4 +97.2%

lite-signal

2.19x geomean
0 wins 0 capped
#5 +121.7%

Preact Signals

2.46x geomean
2 wins 2 capped
#6 +229.7%

Oby

3.66x geomean
0 wins 0 capped
#7 +264.8%

@vue/reactivity

4.05x geomean
0 wins 4 capped
#8 +265.2%

uSignal

4.06x geomean
0 wins 2 capped
#9 +275.6%

@amadeus-it-group/tans

4.17x geomean
0 wins 1 capped
#10 +284.4%

$mol_wire

4.27x geomean
0 wins 1 capped
#11 +407.8%

@solidjs/signals

5.64x geomean
0 wins 6 capped
#12 +419.1%

Signia

5.77x geomean
0 wins 2 capped
#13 +572.3%

s-js

7.47x geomean
1 wins 1 capped
#14 +970.7%

SolidJS

11.89x geomean
0 wins 6 capped

Workload Profile

Framework baseline
reflex1.11x
alien-signals1.20x
@reactively1.60x
lite-signal2.19x
Preact Signals2.46x
Oby3.66x
@vue/reactivity4.05x
uSignal4.06x
@amadeus-it-group/tans4.17x
$mol_wire4.27x
@solidjs/signals5.64x
Signia5.77x
s-js7.47x
SolidJS11.89x

Each cell is a geometric mean slowdown vs the best result within that workload group.

Visual Comparison

reflex
1.11x
alien-signals
1.20x
@reactively
1.60x
lite-signal
2.19x
Preact Signals
2.46x
Oby
3.66x
@vue/reactivity
4.05x
uSignal
4.06x
@amadeus-it-group/tans
4.17x
$mol_wire
4.27x
@solidjs/signals
5.64x
Signia
5.77x
s-js
7.47x
SolidJS
11.89x

Each bar shows geometric mean slowdown relative to the per-test winner. Lower is better.

Per-Test Comparison

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

avoidablePropagation

1
alien-signals
0.83 ms
best
2
reflex
0.99 ms
+19.3%
3
lite-signal
1.29 ms
+55.4%
4
Preact Signals
1.30 ms
+56.6%
5
@reactively
1.31 ms
+57.8%
6
SolidJS
1.65 ms
+98.8%
7
s-js
1.67 ms
+101.2%
8
Oby
1.68 ms
+102.4%
9
@vue/reactivity
1.85 ms
+122.9%
10
$mol_wire
2.04 ms
+145.8%
11
@amadeus-it-group/tans
2.14 ms
+157.8%
12
@solidjs/signals
2.40 ms
+189.2%
13
uSignal
3.56 ms
+328.9%
14
Signia
4.41 ms
+431.3%

broadPropagation

1
alien-signals
0.71 ms
best
2
s-js
0.77 ms
+8.5%
3
reflex
0.89 ms
+25.4%
4
lite-signal
0.90 ms
+26.8%
5
@reactively
0.91 ms
+28.2%
6
Preact Signals
1.03 ms
+45.1%
7
@vue/reactivity
1.28 ms
+80.3%
8
Oby
1.55 ms
+118.3%
9
SolidJS
2.24 ms
+215.5%
10
@amadeus-it-group/tans
2.49 ms
+250.7%
11
$mol_wire
2.86 ms
+302.8%
12
Signia
3.46 ms
+387.3%
13
uSignal
5.18 ms
+629.6%
14
@solidjs/signals
6.37 ms
+797.2%

deepPropagation

1
s-js
0.27 ms
best
2
alien-signals
0.28 ms
+3.7%
3
reflex
0.29 ms
+7.4%
4
@reactively
0.34 ms
+25.9%
5
Preact Signals
0.35 ms
+29.6%
6
lite-signal
0.36 ms
+33.3%
7
@vue/reactivity
0.53 ms
+96.3%
8
Oby
0.62 ms
+129.6%
9
uSignal
0.68 ms
+151.9%
10
SolidJS
0.80 ms
+196.3%
11
$mol_wire
0.84 ms
+211.1%
12
@amadeus-it-group/tans
0.87 ms
+222.2%
13
@solidjs/signals
1.34 ms
+396.3%
14
Signia
1.85 ms
+585.2%

diamond

1
reflex
0.80 ms
best
2
alien-signals
1.02 ms
+27.5%
3
lite-signal
1.03 ms
+28.7%
4
@reactively
1.09 ms
+36.3%
5
s-js
1.14 ms
+42.5%
6
Preact Signals
1.20 ms
+50.0%
7
@vue/reactivity
1.40 ms
+75.0%
8
Oby
1.48 ms
+85.0%
9
@amadeus-it-group/tans
1.58 ms
+97.5%
10
uSignal
1.66 ms
+107.5%
11
SolidJS
1.80 ms
+125.0%
12
$mol_wire
1.95 ms
+143.7%
13
@solidjs/signals
3.10 ms
+287.5%
14
Signia
4.57 ms
+471.3%

mux

1
reflex
0.67 ms
best
2
alien-signals
0.73 ms
+9.0%
3
lite-signal
0.76 ms
+13.4%
4
@reactively
0.79 ms
+17.9%
5
Preact Signals
0.85 ms
+26.9%
6
s-js
0.94 ms
+40.3%
7
Oby
1.07 ms
+59.7%
8
@vue/reactivity
1.25 ms
+86.6%
9
SolidJS
1.27 ms
+89.6%
10
@amadeus-it-group/tans
1.40 ms
+109.0%
11
@solidjs/signals
1.57 ms
+134.3%
12
$mol_wire
2.06 ms
+207.5%
13
uSignal
2.10 ms
+213.4%
14
Signia
2.97 ms
+343.3%

repeatedObservers

1
reflex
0.16 ms
best
2
alien-signals
0.20 ms
+25.0%
3
Preact Signals
0.21 ms
+31.2%
4
@vue/reactivity
0.23 ms
+43.8%
5
lite-signal
0.26 ms
+62.5%
6
@reactively
0.28 ms
+75.0%
7
uSignal
0.33 ms
+106.3%
8
s-js
0.33 ms
+106.3%
9
@amadeus-it-group/tans
0.36 ms
+125.0%
10
Oby
0.38 ms
+137.5%
11
$mol_wire
0.43 ms
+168.8%
12
SolidJS
0.46 ms
+187.5%
13
@solidjs/signals
0.69 ms
+331.2%
14
Signia
0.87 ms
+443.8%

triangle

1
reflex
0.24 ms
best
2
alien-signals
0.33 ms
+37.5%
3
@reactively
0.34 ms
+41.7%
4
lite-signal
0.35 ms
+45.8%
5
s-js
0.35 ms
+45.8%
6
Preact Signals
0.44 ms
+83.3%
7
@vue/reactivity
0.44 ms
+83.3%
8
@amadeus-it-group/tans
0.49 ms
+104.2%
9
Oby
0.59 ms
+145.8%
10
$mol_wire
0.64 ms
+166.7%
11
uSignal
0.66 ms
+175.0%
12
SolidJS
0.66 ms
+175.0%
13
@solidjs/signals
1.03 ms
+329.2%
14
Signia
1.47 ms
+512.5%

unstable

1
reflex
0.25 ms
best
2
Preact Signals
0.26 ms
+4.0%
3
alien-signals
0.29 ms
+16.0%
4
lite-signal
0.29 ms
+16.0%
5
@vue/reactivity
0.31 ms
+24.0%
6
uSignal
0.34 ms
+36.0%
7
Oby
0.41 ms
+64.0%
8
s-js
0.41 ms
+64.0%
9
@reactively
0.43 ms
+72.0%
10
SolidJS
0.55 ms
+120.0%
11
@amadeus-it-group/tans
0.64 ms
+156.0%
12
$mol_wire
1.00 ms
+300.0%
13
@solidjs/signals
1.06 ms
+324.0%
14
Signia
1.23 ms
+392.0%

manyEffectsFromOneSource

1
alien-signals
204.27 ms
best
2
reflex
225.41 ms
+10.3%
3
Preact Signals
243.53 ms
+19.2%
4
s-js
251.83 ms
+23.3%
5
@reactively
272.41 ms
+33.4%
6
lite-signal
290.54 ms
+42.2%
7
@vue/reactivity
352.23 ms
+72.4%
8
Oby
443.27 ms
+117.0%
9
Signia
513.43 ms
+151.3%
10
SolidJS
552.20 ms
+170.3%
11
@amadeus-it-group/tans
673.68 ms
+229.8%
12
uSignal
732.84 ms
+258.8%
13
$mol_wire
995.58 ms
+387.4%
14
@solidjs/signals
1656.40 ms · capped
+710.9%

manySourcesIntoOneComputedEffectWithDirect

1
reflex
90.56 ms
best
2
lite-signal
131.59 ms
+45.3%
3
alien-signals
136.16 ms
+50.4%
4
@reactively
140.75 ms
+55.4%
5
Preact Signals
192.16 ms
+112.2%
6
s-js
200.88 ms
+121.8%
7
Oby
248.13 ms
+174.0%
8
@amadeus-it-group/tans
255.65 ms
+182.3%
9
$mol_wire
300.77 ms
+232.1%
10
@vue/reactivity
300.79 ms
+232.1%
11
uSignal
353.25 ms
+290.1%
12
SolidJS
367.75 ms
+306.1%
13
Signia
426.18 ms
+370.6%
14
@solidjs/signals
434.73 ms
+380.0%

manySourcesIntoOneComputedEffect

1
reflex
89.66 ms
best
2
lite-signal
127.28 ms
+42.0%
3
alien-signals
130.64 ms
+45.7%
4
@reactively
135.98 ms
+51.7%
5
Preact Signals
186.85 ms
+108.4%
6
s-js
203.22 ms
+126.7%
7
Oby
233.28 ms
+160.2%
8
@amadeus-it-group/tans
240.47 ms
+168.2%
9
@vue/reactivity
293.38 ms
+227.2%
10
$mol_wire
306.58 ms
+241.9%
11
uSignal
351.02 ms
+291.5%
12
SolidJS
359.07 ms
+300.5%
13
@solidjs/signals
406.86 ms
+353.8%
14
Signia
426.64 ms
+375.8%

manySourcesIntoOneDirectEffect

1
reflex
31.30 ms
best
2
alien-signals
32.91 ms
+5.1%
3
lite-signal
41.53 ms
+32.7%
4
@reactively
41.96 ms
+34.1%
5
Preact Signals
46.38 ms
+48.2%
6
s-js
50.13 ms
+60.2%
7
@amadeus-it-group/tans
72.50 ms
+131.6%
8
$mol_wire
78.70 ms
+151.4%
9
Oby
79.77 ms
+154.9%
10
@solidjs/signals
80.31 ms
+156.6%
11
uSignal
87.39 ms
+179.2%
12
@vue/reactivity
87.58 ms
+179.8%
13
SolidJS
93.68 ms
+199.3%
14
Signia
112.96 ms
+260.9%

molBench

1
reflex
0.08 ms
best
2
alien-signals
0.10 ms
+25.0%
3
lite-signal
0.10 ms
+25.0%
4
@reactively
0.13 ms
+62.5%
5
$mol_wire
0.15 ms
+87.5%
6
Preact Signals
0.16 ms
+100.0%
7
Oby
0.17 ms
+112.5%
8
SolidJS
0.17 ms
+112.5%
9
@amadeus-it-group/tans
0.19 ms
+137.5%
10
uSignal
0.21 ms
+162.5%
11
s-js
0.22 ms
+175.0%
12
Signia
0.23 ms
+187.5%
13
@solidjs/signals
0.24 ms
+200.0%
14
@vue/reactivity
0.27 ms
+237.5%

createDataSignals

1
alien-signals
5.48 ms
best
2
Preact Signals
11.81 ms
+115.5%
3
reflex
12.42 ms
+126.6%
4
@reactively
12.97 ms
+136.7%
5
@vue/reactivity
17.45 ms
+218.4%
6
@solidjs/signals
18.32 ms
+234.3%
7
s-js
19.21 ms
+250.5%
8
SolidJS
19.77 ms
+260.8%
9
Signia
20.13 ms
+267.3%
10
Oby
21.00 ms
+283.2%
11
@amadeus-it-group/tans
22.52 ms
+310.9%
12
lite-signal
26.43 ms
+382.3%
13
uSignal
26.66 ms
+386.5%
14
$mol_wire
35.10 ms
+540.5%

createComputations0to1

1
reflex
4.10 ms
best
2
alien-signals
5.16 ms
+25.9%
3
@reactively
12.42 ms
+202.9%
4
Preact Signals
16.65 ms
+306.1%
5
lite-signal
18.16 ms
+342.9%
6
@solidjs/signals
29.57 ms
+621.2%
7
uSignal
36.53 ms
+791.0%
8
@vue/reactivity
41.11 ms
+902.7%
9
Signia
44.96 ms
+996.6%
10
s-js
64.68 ms
+1477.6%
11
@amadeus-it-group/tans
66.81 ms
+1529.5%
12
Oby
67.43 ms
+1544.6%
13
$mol_wire
93.85 ms
+2189.0%
14
SolidJS
111.71 ms
+2624.6%

createComputations1to1

1
reflex
4.49 ms
best
2
alien-signals
6.20 ms
+38.1%
3
@reactively
17.31 ms
+285.5%
4
Preact Signals
21.48 ms
+378.4%
5
lite-signal
26.71 ms
+494.9%
6
uSignal
40.98 ms
+812.7%
7
@vue/reactivity
41.53 ms
+824.9%
8
@solidjs/signals
44.05 ms
+881.1%
9
Signia
46.98 ms
+946.3%
10
@amadeus-it-group/tans
75.83 ms
+1588.9%
11
Oby
76.72 ms
+1608.7%
12
$mol_wire
101.28 ms
+2155.7%
13
SolidJS
131.87 ms
+2837.0%
14
s-js
140.59 ms
+3031.2%

createComputations2to1

1
alien-signals
3.94 ms
best
2
reflex
5.47 ms
+38.8%
3
@reactively
6.74 ms
+71.1%
4
lite-signal
19.23 ms
+388.1%
5
Preact Signals
20.40 ms
+417.8%
6
@vue/reactivity
22.12 ms
+461.4%
7
uSignal
23.13 ms
+487.1%
8
@solidjs/signals
34.31 ms
+770.8%
9
$mol_wire
40.40 ms
+925.4%
10
Oby
45.50 ms
+1054.8%
11
Signia
46.07 ms
+1069.3%
12
@amadeus-it-group/tans
63.63 ms
+1515.0%
13
s-js
88.47 ms
+2145.4%
14
SolidJS
145.67 ms
+3597.2%

createComputations4to1

1
alien-signals
2.77 ms
best
2
@reactively
4.45 ms
+60.6%
3
reflex
4.62 ms
+66.8%
4
Preact Signals
12.25 ms
+342.2%
5
@vue/reactivity
12.59 ms
+354.5%
6
uSignal
13.65 ms
+392.8%
7
Signia
13.97 ms
+404.3%
8
lite-signal
14.01 ms
+405.8%
9
$mol_wire
21.62 ms
+680.5%
10
Oby
23.94 ms
+764.3%
11
@solidjs/signals
28.05 ms
+912.6%
12
@amadeus-it-group/tans
44.73 ms
+1514.8%
13
s-js
52.74 ms
+1804.0%
14
SolidJS
109.82 ms
+3864.6%

createComputations1000to1

1
reflex
0.03 ms
best
2
@reactively
0.03 ms
+0.0%
3
alien-signals
0.04 ms
+33.3%
4
$mol_wire
0.04 ms
+33.3%
5
lite-signal
0.10 ms
+233.3%
6
Signia
0.17 ms
+466.7%
7
Preact Signals
0.18 ms
+500.0%
8
uSignal
0.18 ms
+500.0%
9
@vue/reactivity
0.19 ms
+533.3%
10
Oby
0.21 ms
+600.0%
11
@amadeus-it-group/tans
0.30 ms
+900.0%
12
SolidJS
8.50 ms
+28233.3%
13
@solidjs/signals
11.14 ms
+37033.3%
14
s-js
12.71 ms
+42266.7%

createComputations1to2

1
reflex
4.19 ms
best
2
alien-signals
6.03 ms
+43.9%
3
@reactively
12.43 ms
+196.7%
4
lite-signal
18.18 ms
+333.9%
5
Preact Signals
19.41 ms
+363.2%
6
@solidjs/signals
36.99 ms
+782.8%
7
uSignal
43.60 ms
+940.6%
8
@vue/reactivity
44.40 ms
+959.7%
9
Signia
47.15 ms
+1025.3%
10
@amadeus-it-group/tans
68.03 ms
+1523.6%
11
$mol_wire
73.21 ms
+1647.3%
12
Oby
73.84 ms
+1662.3%
13
s-js
165.03 ms
+3838.7%
14
SolidJS
174.75 ms
+4070.6%

createComputations1to4

1
reflex
2.18 ms
best
2
alien-signals
5.46 ms
+150.5%
3
@reactively
13.10 ms
+500.9%
4
Preact Signals
17.80 ms
+716.5%
5
lite-signal
22.94 ms
+952.3%
6
@solidjs/signals
36.23 ms
+1561.9%
7
uSignal
39.18 ms
+1697.2%
8
@vue/reactivity
43.76 ms
+1907.3%
9
Signia
46.08 ms
+2013.8%
10
@amadeus-it-group/tans
65.18 ms
+2889.9%
11
Oby
73.06 ms
+3251.4%
12
$mol_wire
83.13 ms
+3713.3%
13
SolidJS
165.88 ms
+7509.2%
14
s-js
165.93 ms
+7511.5%

createComputations1to8

1
reflex
1.68 ms
best
2
alien-signals
4.66 ms
+177.4%
3
@reactively
11.59 ms
+589.9%
4
lite-signal
16.43 ms
+878.0%
5
Preact Signals
17.71 ms
+954.2%
6
@solidjs/signals
34.01 ms
+1924.4%
7
uSignal
38.20 ms
+2173.8%
8
Signia
45.67 ms
+2618.5%
9
@vue/reactivity
50.56 ms
+2909.5%
10
@amadeus-it-group/tans
64.71 ms
+3751.8%
11
Oby
67.65 ms
+3926.8%
12
$mol_wire
96.12 ms
+5621.4%
13
SolidJS
171.40 ms
+10102.4%
14
s-js
176.21 ms
+10388.7%

createComputations1to1000

1
reflex
3.79 ms
best
2
alien-signals
4.49 ms
+18.5%
3
@reactively
12.36 ms
+226.1%
4
Preact Signals
17.22 ms
+354.4%
5
lite-signal
17.52 ms
+362.3%
6
@solidjs/signals
32.33 ms
+753.0%
7
uSignal
36.16 ms
+854.1%
8
@vue/reactivity
40.63 ms
+972.0%
9
Signia
44.09 ms
+1063.3%
10
@amadeus-it-group/tans
64.65 ms
+1605.8%
11
Oby
65.38 ms
+1625.1%
12
$mol_wire
96.33 ms
+2441.7%
13
SolidJS
151.43 ms
+3895.5%
14
s-js
174.39 ms
+4501.3%

updateComputations1to1

1
alien-signals
5.77 ms
best
2
reflex
6.48 ms
+12.3%
3
@reactively
7.13 ms
+23.6%
4
uSignal
10.81 ms
+87.3%
5
lite-signal
10.88 ms
+88.6%
6
@vue/reactivity
12.33 ms
+113.7%
7
Preact Signals
13.06 ms
+126.3%
8
@amadeus-it-group/tans
13.74 ms
+138.1%
9
@solidjs/signals
14.90 ms
+158.2%
10
$mol_wire
16.72 ms
+189.8%
11
Oby
19.66 ms
+240.7%
12
s-js
59.38 ms
+929.1%
13
Signia
67.58 ms
+1071.2%
14
SolidJS
107.31 ms
+1759.8%

updateComputations2to1

1
alien-signals
3.30 ms
best
2
@reactively
3.48 ms
+5.5%
3
reflex
3.90 ms
+18.2%
4
Preact Signals
4.81 ms
+45.8%
5
uSignal
5.82 ms
+76.4%
6
@vue/reactivity
6.14 ms
+86.1%
7
lite-signal
6.34 ms
+92.1%
8
@amadeus-it-group/tans
6.91 ms
+109.4%
9
$mol_wire
8.52 ms
+158.2%
10
@solidjs/signals
8.68 ms
+163.0%
11
Oby
9.83 ms
+197.9%
12
Signia
27.22 ms
+724.8%
13
s-js
39.30 ms
+1090.9%
14
SolidJS
74.12 ms
+2146.1%

updateComputations4to1

1
alien-signals
1.66 ms
best
2
@reactively
1.77 ms
+6.6%
3
Preact Signals
2.34 ms
+41.0%
4
reflex
2.74 ms
+65.1%
5
uSignal
2.89 ms
+74.1%
6
@vue/reactivity
3.08 ms
+85.5%
7
lite-signal
3.18 ms
+91.6%
8
@amadeus-it-group/tans
3.55 ms
+113.9%
9
Oby
5.06 ms
+204.8%
10
@solidjs/signals
5.68 ms
+242.2%
11
$mol_wire
6.97 ms
+319.9%
12
Signia
13.38 ms
+706.0%
13
s-js
27.11 ms
+1533.1%
14
SolidJS
52.94 ms
+3089.2%

updateComputations1000to1

1
reflex
0.03 ms
best
2
@reactively
0.04 ms
+33.3%
3
alien-signals
0.06 ms
+100.0%
4
$mol_wire
0.07 ms
+133.3%
5
@vue/reactivity
0.09 ms
+200.0%
6
lite-signal
0.10 ms
+233.3%
7
Preact Signals
0.10 ms
+233.3%
8
uSignal
0.10 ms
+233.3%
9
@amadeus-it-group/tans
0.12 ms
+300.0%
10
Oby
0.13 ms
+333.3%
11
@solidjs/signals
0.22 ms
+633.3%
12
Signia
0.22 ms
+633.3%
13
s-js
37.58 ms
+125166.7%
14
SolidJS
62.55 ms
+208400.0%

updateComputations1to2

1
@reactively
3.40 ms
best
2
alien-signals
4.20 ms
+23.5%
3
reflex
4.23 ms
+24.4%
4
Preact Signals
4.50 ms
+32.4%
5
uSignal
5.29 ms
+55.6%
6
@vue/reactivity
6.12 ms
+80.0%
7
@amadeus-it-group/tans
6.98 ms
+105.3%
8
lite-signal
7.66 ms
+125.3%
9
$mol_wire
8.15 ms
+139.7%
10
Oby
9.96 ms
+192.9%
11
@solidjs/signals
11.72 ms
+244.7%
12
Signia
27.59 ms
+711.5%
13
s-js
53.49 ms
+1473.2%
14
SolidJS
91.63 ms
+2595.0%

updateComputations1to4

1
alien-signals
1.63 ms
best
2
@reactively
1.68 ms
+3.1%
3
Preact Signals
2.23 ms
+36.8%
4
uSignal
2.64 ms
+62.0%
5
reflex
2.76 ms
+69.3%
6
@vue/reactivity
3.09 ms
+89.6%
7
lite-signal
3.27 ms
+100.6%
8
@amadeus-it-group/tans
3.51 ms
+115.3%
9
$mol_wire
4.11 ms
+152.1%
10
Oby
4.94 ms
+203.1%
11
@solidjs/signals
8.12 ms
+398.2%
12
Signia
13.47 ms
+726.4%
13
s-js
46.03 ms
+2723.9%
14
SolidJS
87.70 ms
+5280.4%

updateComputations1to1000

1
alien-signals
0.07 ms
best
2
@reactively
0.13 ms
+85.7%
3
reflex
0.17 ms
+142.9%
4
$mol_wire
0.18 ms
+157.1%
5
@vue/reactivity
0.36 ms
+414.3%
6
lite-signal
0.41 ms
+485.7%
7
uSignal
0.52 ms
+642.9%
8
Preact Signals
0.54 ms
+671.4%
9
Signia
0.63 ms
+800.0%
10
Oby
0.78 ms
+1014.3%
11
@amadeus-it-group/tans
1.28 ms
+1728.6%
12
@solidjs/signals
5.43 ms
+7657.1%
13
s-js
40.16 ms
+57271.4%
14
SolidJS
74.85 ms
+106828.6%

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

1
reflex
267.82 ms
best
2
alien-signals
302.92 ms
+13.1%
3
@reactively
369.99 ms
+38.1%
4
lite-signal
475.73 ms
+77.6%
5
Oby
664.18 ms
+148.0%
6
@amadeus-it-group/tans
703.49 ms
+162.7%
7
Preact Signals
822.69 ms
+207.2%
8
$mol_wire
828.83 ms
+209.5%
9
uSignal
884.64 ms
+230.3%
10
s-js
1142.98 ms
+326.8%
11
Signia
1157.96 ms
+332.4%
12
@vue/reactivity
1375.59 ms
+413.6%
13
@solidjs/signals
2636.03 ms · capped
+884.3%
14
SolidJS
2667.58 ms · capped
+896.0%

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

1
reflex
399.23 ms
best
2
alien-signals
466.00 ms
+16.7%
3
@reactively
572.52 ms
+43.4%
4
lite-signal
723.00 ms
+81.1%
5
Preact Signals
732.98 ms
+83.6%
6
s-js
924.59 ms
+131.6%
7
Oby
1003.56 ms
+151.4%
8
@amadeus-it-group/tans
1041.01 ms
+160.8%
9
Signia
1148.66 ms
+187.7%
10
@vue/reactivity
1230.19 ms
+208.1%
11
$mol_wire
1282.25 ms
+221.2%
12
uSignal
1347.68 ms
+237.6%
13
@solidjs/signals
2086.29 ms · capped
+422.6%
14
SolidJS
2143.96 ms · capped
+437.0%

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

1
reflex
219.58 ms
best
2
alien-signals
249.94 ms
+13.8%
3
@reactively
305.94 ms
+39.3%
4
lite-signal
387.22 ms
+76.3%
5
Oby
541.78 ms
+146.7%
6
@amadeus-it-group/tans
546.69 ms
+149.0%
7
$mol_wire
634.29 ms
+188.9%
8
s-js
696.86 ms
+217.4%
9
uSignal
885.75 ms
+303.4%
10
Preact Signals
895.68 ms
+307.9%
11
Signia
1112.69 ms
+406.7%
12
@solidjs/signals
1307.62 ms
+495.5%
13
SolidJS
1377.97 ms
+527.5%
14
@vue/reactivity
1912.78 ms · capped
+771.1%

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

1
reflex
416.75 ms
best
2
alien-signals
461.86 ms
+10.8%
3
@reactively
567.24 ms
+36.1%
4
lite-signal
715.97 ms
+71.8%
5
Preact Signals
736.78 ms
+76.8%
6
s-js
913.23 ms
+119.1%
7
Oby
960.51 ms
+130.5%
8
@amadeus-it-group/tans
1050.74 ms
+152.1%
9
$mol_wire
1222.66 ms
+193.4%
10
Signia
1233.84 ms
+196.1%
11
uSignal
1316.30 ms
+215.8%
12
@vue/reactivity
1397.36 ms
+235.3%
13
@solidjs/signals
1883.28 ms · capped
+351.9%
14
SolidJS
1995.29 ms · capped
+378.8%

256->512x32 - fanIn 4 - layered-dag - 4 sources (layered ful

1
reflex
61.48 ms
best
2
alien-signals
77.25 ms
+25.7%
3
lite-signal
86.52 ms
+40.7%
4
@reactively
95.29 ms
+55.0%
5
@solidjs/signals
144.43 ms
+134.9%
6
Oby
145.48 ms
+136.6%
7
Preact Signals
146.22 ms
+137.8%
8
s-js
194.49 ms
+216.3%
9
Signia
228.98 ms
+272.4%
10
$mol_wire
283.94 ms
+361.8%
11
@amadeus-it-group/tans
291.11 ms
+373.5%
12
@vue/reactivity
368.04 ms
+498.6%
13
SolidJS
380.40 ms
+518.7%
14
uSignal
400.65 ms
+551.7%

256->512x32 - fanIn 4 - layered-dag - 4 sources - warm 320 (

1
alien-signals
59.71 ms
best
2
reflex
60.88 ms
+2.0%
3
lite-signal
81.94 ms
+37.2%
4
@reactively
83.76 ms
+40.3%
5
@solidjs/signals
144.09 ms
+141.3%
6
Oby
150.95 ms
+152.8%
7
Preact Signals
164.75 ms
+175.9%
8
$mol_wire
256.15 ms
+329.0%
9
Signia
281.03 ms
+370.7%
10
s-js
311.81 ms
+422.2%
11
@amadeus-it-group/tans
321.46 ms
+438.4%
12
uSignal
391.06 ms
+554.9%
13
SolidJS
394.97 ms
+561.5%
14
@vue/reactivity
733.54 ms
+1128.5%

256->512x32 - fanIn 8 - layered-dag - 8 sources - burst 16 -

1
Preact Signals
546.92 ms
best
2
reflex
572.55 ms
+4.7%
3
alien-signals
590.03 ms
+7.9%
4
@reactively
639.32 ms
+16.9%
5
Oby
950.19 ms
+73.7%
6
Signia
1038.00 ms
+89.8%
7
lite-signal
1048.19 ms
+91.7%
8
@solidjs/signals
1852.70 ms · capped
+238.8%
9
@vue/reactivity
2364.35 ms · capped
+332.3%
10
$mol_wire
2373.99 ms · capped
+334.1%
11
SolidJS
2704.02 ms · capped
+394.4%
12
@amadeus-it-group/tans
2714.00 ms · capped
+396.2%
13
uSignal
2715.22 ms · capped
+396.5%
14
s-js
2857.11 ms · capped
+422.4%

256->512x32 - fanIn 8 - diamond-mesh - 8 sources - warm 256

1
alien-signals
8.76 ms
best
2
reflex
8.84 ms
+0.9%
3
lite-signal
12.97 ms
+48.1%
4
@reactively
15.63 ms
+78.4%
5
Oby
18.72 ms
+113.7%
6
s-js
23.32 ms
+166.2%
7
@solidjs/signals
23.51 ms
+168.4%
8
$mol_wire
30.50 ms
+248.2%
9
@amadeus-it-group/tans
31.36 ms
+258.0%
10
SolidJS
37.12 ms
+323.7%
11
uSignal
37.91 ms
+332.8%
12
Preact Signals
59.70 ms
+581.5%
13
Signia
124.94 ms
+1326.3%
14
@vue/reactivity
159.98 ms
+1726.3%

32x8 - 4 sources - pull (pure pull)

1
reflex
0.92 ms
best
2
@reactively
1.28 ms
+39.1%
3
alien-signals
1.67 ms
+81.5%
4
Preact Signals
1.87 ms
+103.3%
5
@solidjs/signals
2.01 ms
+118.5%
6
@amadeus-it-group/tans
2.19 ms
+138.0%
7
Oby
2.29 ms
+148.9%
8
$mol_wire
2.33 ms
+153.3%
9
@vue/reactivity
2.70 ms
+193.5%
10
lite-signal
3.81 ms
+314.1%
11
Signia
4.67 ms
+407.6%
12
uSignal
4.97 ms
+440.2%
13
s-js
222.04 ms
+24034.8%
14
SolidJS
412.23 ms
+44707.6%

32x8 - 4 sources - push (pure push)

1
reflex
106.67 ms
best
2
alien-signals
109.83 ms
+3.0%
3
@reactively
145.66 ms
+36.6%
4
lite-signal
179.76 ms
+68.5%
5
Preact Signals
187.32 ms
+75.6%
6
s-js
244.50 ms
+129.2%
7
Oby
298.85 ms
+180.2%
8
@amadeus-it-group/tans
305.65 ms
+186.5%
9
Signia
333.10 ms
+212.3%
10
@vue/reactivity
360.83 ms
+238.3%
11
$mol_wire
369.01 ms
+245.9%
12
uSignal
421.59 ms
+295.2%
13
SolidJS
479.25 ms
+349.3%
14
@solidjs/signals
529.82 ms
+396.7%

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

1
reflex
228.28 ms
best
2
alien-signals
246.54 ms
+8.0%
3
@reactively
288.48 ms
+26.4%
4
lite-signal
346.32 ms
+51.7%
5
Preact Signals
381.85 ms
+67.3%
6
Oby
515.47 ms
+125.8%
7
@amadeus-it-group/tans
548.45 ms
+140.3%
8
Signia
558.24 ms
+144.5%
9
@vue/reactivity
644.83 ms
+182.5%
10
uSignal
668.69 ms
+192.9%
11
$mol_wire
753.48 ms
+230.1%
12
s-js
862.13 ms
+277.7%
13
SolidJS
2210.69 ms · capped
+868.4%
14
@solidjs/signals
2912.89 ms · capped
+1176.0%

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

1
reflex
165.18 ms
best
2
alien-signals
185.53 ms
+12.3%
3
Preact Signals
221.21 ms
+33.9%
4
@reactively
226.89 ms
+37.4%
5
lite-signal
265.97 ms
+61.0%
6
Signia
335.28 ms
+103.0%
7
@amadeus-it-group/tans
359.19 ms
+117.5%
8
Oby
391.68 ms
+137.1%
9
s-js
395.13 ms
+139.2%
10
@vue/reactivity
419.05 ms
+153.7%
11
$mol_wire
466.03 ms
+182.1%
12
uSignal
585.54 ms
+254.5%
13
@solidjs/signals
697.31 ms
+322.2%
14
SolidJS
789.88 ms
+378.2%

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

1
reflex
296.70 ms
best
2
alien-signals
296.91 ms
+0.1%
3
@reactively
399.66 ms
+34.7%
4
lite-signal
509.17 ms
+71.6%
5
Oby
700.22 ms
+136.0%
6
s-js
798.54 ms
+169.1%
7
@amadeus-it-group/tans
899.52 ms
+203.2%
8
@solidjs/signals
950.88 ms
+220.5%
9
$mol_wire
968.61 ms
+226.5%
10
uSignal
1024.88 ms
+245.4%
11
SolidJS
1413.14 ms
+376.3%
12
Preact Signals
3313.89 ms · capped
+1016.9%
13
Signia
4574.13 ms · capped
+1441.7%
14
@vue/reactivity
5256.23 ms · capped
+1671.6%

1000x5 - 25 sources (wide dense)

1
reflex
494.48 ms
best
2
alien-signals
504.54 ms
+2.0%
3
@reactively
513.95 ms
+3.9%
4
lite-signal
674.07 ms
+36.3%
5
Oby
777.30 ms
+57.2%
6
$mol_wire
946.18 ms
+91.3%
7
@amadeus-it-group/tans
1108.56 ms
+124.2%
8
s-js
1201.60 ms
+143.0%
9
@solidjs/signals
1304.06 ms
+163.7%
10
SolidJS
1651.51 ms · capped
+234.0%
11
uSignal
2105.93 ms · capped
+325.9%
12
Preact Signals
2505.96 ms · capped
+406.8%
13
Signia
2853.11 ms · capped
+477.0%
14
@vue/reactivity
7022.00 ms · capped
+1320.1%

5x500 - 3 sources (deep)

1
Preact Signals
152.78 ms
best
2
reflex
153.71 ms
+0.6%
3
alien-signals
162.53 ms
+6.4%
4
@reactively
221.50 ms
+45.0%
5
lite-signal
224.35 ms
+46.8%
6
Signia
273.31 ms
+78.9%
7
Oby
333.48 ms
+118.3%
8
s-js
340.88 ms
+123.1%
9
@vue/reactivity
373.28 ms
+144.3%
10
$mol_wire
411.21 ms
+169.2%
11
@amadeus-it-group/tans
421.31 ms
+175.8%
12
@solidjs/signals
503.51 ms
+229.6%
13
uSignal
529.75 ms
+246.7%
14
SolidJS
709.09 ms
+364.1%

How To Read This

reflex has the strongest relative profile in this run, 7.7% ahead of alien-signals by geometric mean. It also takes 28 of 45 scenario wins, while alien-signals takes 13.

This page intentionally treats benchmarks as workload families rather than a single universal speed claim. Median is the primary row score; p95/p99 and CV show predictability.

Interpret wins through the scenario taxonomy: creation, update, pull/push propagation, dynamic dependency churn, large graphs, lifecycle pressure, and memory behavior can favor different runtimes.