| Кандидат | Успешно | Ошибки | Пропущено | Неполно |
|---|---|---|---|---|
| AlienSignals | 178 | 0 | 0 | 0 |
| Raph | 178 | 0 | 0 | 0 |
| Preact Signals | 175 | 3 | 0 | 0 |
| @reatom/core | 174 | 4 | 0 | 0 |
| @vue3.5 | 171 | 7 | 0 | 0 |
| anod | 160 | 18 | 0 | 0 |
| @vue3.6 | 159 | 19 | 0 | 0 |
| solid-js | 153 | 25 | 0 | 0 |
| tansu | 151 | 6 | 21 | 0 |
| signal-polyfill | 141 | 8 | 29 | 0 |
| @angular/core | 137 | 12 | 29 | 0 |
| S.js | 130 | 48 | 0 | 0 |
| svelte | 129 | 13 | 36 | 0 |
| mobx | 116 | 41 | 21 | 0 |
| @reactively | 101 | 22 | 55 | 0 |
| pota | 93 | 85 | 0 | 0 |
| Solid Signals | 0 | 0 | 0 | 178 |
| reflex | 0 | 0 | 0 | 178 |
ПроизводительностьAlienSignals, Raph
| Кандидат | Геосреднее |
|---|---|
| AlienSignals | 1.136 |
| Raph | 1.146 |
| reflex | 1.226 |
| @vue3.6 | 1.271 |
| @reactively | 1.427 |
| lite-signal | 1.858 |
| Preact Signals | 2.061 |
| tansu | 2.233 |
| Oby | 2.266 |
| $mol_wire | 2.47 |
| uSignal | 2.528 |
| @vue3.5 | 2.588 |
| MobX | 3.162 |
| Signia | 3.775 |
| Solid Signals | 3.817 |
| s-js | 3.929 |
| SolidJS | 5.288 |
Сценарии производительности38 строк · 17 кандидатов
| Сценарий | AlienSignals | Raph | reflex | @vue3.6 | @reactively | lite-signal | Preact Signals | tansu | Oby | $mol_wire | uSignal | @vue3.5 | MobX | Signia | Solid Signals | s-js | SolidJS |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Базовая передача измененийP0 | |||||||||||||||||
upstream.avoidable-propagation | 0.27 | 0.24 | 0.27 | 0.27 | 0.28 | 0.34 | 0.27 | 0.44 | 0.32 | 0.44 | 0.60 | 0.31 | 0.62 | 0.53 | 0.49 | 0.35 | 0.39 |
upstream.diamond | 0.22 | 0.23 | 0.25 | 0.21 | 0.26 | 0.23 | 0.24 | 0.30 | 0.31 | 0.40 | 0.37 | 0.27 | 0.57 | 0.45 | 0.53 | 0.24 | 0.37 |
| Масштаб передачи измененийP1(не учитывается в рейтинге) | |||||||||||||||||
upstream.broad-propagation | 0.18 | 0.18 | 0.27 | 0.19 | 0.24 | 0.19 | 0.22 | 0.51 | 0.28 | 0.61 | 0.45 | 0.25 | 0.88 | 0.67 | 0.74 | 0.17 | 0.43 |
upstream.deep-propagation | 0.06 | 0.08 | 0.07 | 0.06 | 0.09 | 0.08 | 0.08 | 0.11 | 0.13 | 0.19 | 0.15 | 0.09 | 0.36 | 0.36 | 0.23 | 0.06 | 0.16 |
upstream.repeated-observers | 0.04 | 0.06 | 0.05 | 0.04 | 0.05 | 0.05 | 0.04 | 0.07 | 0.06 | 0.09 | 0.06 | 0.04 | 0.07 | 0.11 | 0.11 | 0.08 | 0.09 |
| Связи и эффектыP1 | |||||||||||||||||
upstream.fan.many-effects | 94.67 | 100.04 | 115.79 | 104.96 | 120.94 | 137.72 | 92.40 | 231.70 | 145.85 | 421.67 | 261.85 | 119.22 | 405.26 | 202.22 | 516.90 | 99.57 | 214.30 |
upstream.fan.computed-effect-direct | 72.28 | 62.85 | 49.53 | 51.75 | 61.27 | 54.27 | 72.28 | 102.70 | 78.09 | 112.74 | 142.58 | 106.18 | 134.07 | 176.37 | 168.65 | 78.73 | 141.56 |
upstream.fan.computed-effect | 69.83 | 60.65 | 47.00 | 49.37 | 60.46 | 51.84 | 68.89 | 97.87 | 74.41 | 106.96 | 134.26 | 101.87 | 126.88 | 174.78 | 158.50 | 72.35 | 133.99 |
upstream.fan.direct-effect | 25.79 | 26.44 | 26.66 | 25.89 | 26.95 | 27.14 | 27.68 | 30.52 | 28.61 | 30.44 | 30.37 | 27.75 | 31.81 | 36.97 | 39.34 | 28.24 | 30.45 |
| Создание реактивных связейP1 | |||||||||||||||||
upstream.creation.signals | 1.40 | 1.20 | 1.55 | 1.55 | 1.33 | 4.65 | 1.58 | 2.76 | 2.40 | 3.71 | 2.16 | 2.03 | 1.10 | 2.40 | 1.99 | 2.12 | 2.36 |
upstream.creation.1-to-1 | 1.03 | 0.97 | 2.87 | 3.20 | 3.69 | 8.78 | 3.18 | 9.76 | 10.04 | 6.32 | 7.64 | 5.44 | 4.76 | 8.30 | 11.25 | 77.28 | 10.75 |
upstream.creation.2-to-1 | 0.81 | 0.74 | 3.01 | 2.54 | 3.26 | 7.10 | 2.51 | 8.26 | 8.45 | 5.27 | 6.43 | 3.51 | 3.67 | 6.90 | 7.72 | 38.74 | 8.46 |
upstream.creation.4-to-1 | 0.62 | 0.54 | 2.46 | 2.70 | 2.40 | 4.90 | 3.15 | 6.70 | 6.91 | 4.17 | 4.94 | 2.96 | 3.66 | 5.47 | 6.03 | 22.89 | 6.35 |
upstream.creation.1-to-2 | 0.91 | 0.75 | 2.32 | 2.61 | 2.78 | 6.86 | 2.44 | 7.87 | 7.52 | 4.34 | 6.16 | 3.46 | 3.61 | 6.08 | 10.09 | 78.33 | 8.31 |
upstream.creation.1-to-4 | 0.73 | 0.70 | 1.41 | 1.98 | 1.29 | 5.94 | 1.83 | 5.76 | 6.54 | 3.28 | 4.82 | 2.85 | 2.72 | 4.83 | 9.76 | 61.49 | 7.93 |
upstream.creation.1-to-8 | 0.43 | 0.55 | 0.76 | 0.76 | 0.65 | 5.47 | 0.62 | 5.42 | 6.10 | 2.86 | 4.16 | 0.77 | 2.18 | 3.91 | 9.41 | 21.75 | 7.74 |
| Обновление реактивных связейP1 | |||||||||||||||||
upstream.update.1-to-1 | 1.77 | 1.45 | 2.75 | 1.82 | 2.29 | 3.65 | 2.40 | 3.83 | 3.24 | 3.85 | 2.69 | 2.40 | 3.93 | 12.10 | 3.98 | 15.65 | 24.06 |
upstream.update.2-to-1 | 1.13 | 0.77 | 1.61 | 1.25 | 0.99 | 2.13 | 1.42 | 2.01 | 2.08 | 2.04 | 1.66 | 1.49 | 2.43 | 6.18 | 2.33 | 10.62 | 14.48 |
upstream.update.4-to-1 | 0.64 | 0.35 | 0.72 | 0.81 | 0.68 | 0.98 | 0.61 | 1.07 | 1.18 | 1.19 | 1.00 | 0.87 | 1.24 | 3.20 | 1.38 | 7.43 | 9.48 |
upstream.update.1-to-2 | 1.14 | 0.65 | 1.59 | 1.19 | 1.12 | 1.76 | 1.47 | 2.12 | 2.11 | 1.74 | 1.71 | 1.53 | 2.48 | 6.23 | 2.63 | 14.22 | 19.90 |
upstream.update.1-to-4 | 0.70 | 0.33 | 0.96 | 0.78 | 0.85 | 0.84 | 0.63 | 1.14 | 1.32 | 1.29 | 1.11 | 0.97 | 1.21 | 3.20 | 1.89 | 12.40 | 19.73 |
| Сценарии приложенийP0 | |||||||||||||||||
upstream.app.dashboard | 140.13 | 160.97 | 132.53 | 144.43 | 174.35 | 224.17 | 361.89 | 260.44 | 268.59 | 336.69 | 299.05 | 465.45 | 423.99 | 493.30 | 1 023.49 | 502.68 | 919.00 |
upstream.app.editor | 208.30 | 239.07 | 197.80 | 213.56 | 257.28 | 324.79 | 301.95 | 373.62 | 423.73 | 516.22 | 447.48 | 394.41 | 650.03 | 419.16 | 828.30 | 378.25 | 773.19 |
upstream.app.kanban | 111.55 | 128.11 | 102.75 | 120.23 | 143.16 | 186.92 | 376.47 | 207.00 | 219.25 | 257.56 | 336.38 | 474.59 | 345.78 | 492.60 | 550.92 | 294.25 | 508.29 |
upstream.app.entity-detail | 218.69 | 264.62 | 213.10 | 243.74 | 279.83 | 372.55 | 342.96 | 407.80 | 454.64 | 503.36 | 552.94 | 440.04 | 658.54 | 477.55 | 753.70 | 390.93 | 801.35 |
| Компонентные сценарииP0 | |||||||||||||||||
upstream.component.simple | 114.43 | 134.06 | 106.72 | 110.52 | 135.80 | 166.84 | 153.35 | 200.21 | 217.92 | 293.83 | 228.06 | 202.44 | 360.08 | 216.80 | 1 042.12 | 364.28 | 719.06 |
upstream.component.dynamic | 89.63 | 97.80 | 81.28 | 94.92 | 108.61 | 129.85 | 97.99 | 148.20 | 164.95 | 190.54 | 217.17 | 121.39 | 259.20 | 129.77 | 290.50 | 153.94 | 273.89 |
| Крупное приложениеP1 | |||||||||||||||||
upstream.app.large | 158.35 | 186.87 | 155.20 | 159.58 | 184.24 | 234.30 | 1 718.39 | 304.52 | 298.54 | 313.41 | 280.29 | 2 391.43 | 340.10 | 2 747.69 | 383.29 | 241.93 | 382.35 |
| Большие графы зависимостейP1 | |||||||||||||||||
upstream.large.layered-cold | 50.17 | 46.62 | 33.87 | 42.92 | 70.63 | 52.14 | 98.42 | 89.24 | 73.91 | 65.53 | 101.65 | 160.55 | 108.64 | 145.45 | 96.10 | 109.84 | 153.82 |
upstream.large.layered-warm | 36.63 | 35.40 | 33.50 | 34.08 | 66.10 | 44.82 | 89.22 | 64.83 | 63.87 | 69.29 | 94.20 | 106.17 | 83.30 | 120.11 | 97.38 | 108.63 | 134.06 |
upstream.large.layered-burst | 304.23 | 426.96 | 299.72 | 343.61 | 341.33 | 573.98 | 281.00 | 668.02 | 473.63 | 595.88 | 790.16 | 444.79 | 920.15 | 308.70 | 694.49 | 860.13 | 1 243.74 |
upstream.large.diamond-mesh | 2.87 | 3.55 | 3.00 | 3.28 | 4.20 | 4.66 | 42.95 | 7.08 | 5.47 | 6.84 | 6.11 | 53.95 | 15.47 | 64.01 | 8.06 | 6.29 | 9.45 |
| Режимы вычисленияP1 | |||||||||||||||||
upstream.mode.pull | 0.54 | 0.52 | 0.57 | 0.66 | 0.57 | 0.81 | 0.67 | 0.51 | 1.47 | 0.61 | 0.70 | 0.61 | 3.16 | 0.91 | 1.11 | 78.32 | 139.17 |
upstream.mode.push | 50.77 | 61.28 | 49.76 | 63.54 | 69.39 | 84.80 | 77.59 | 104.45 | 109.79 | 147.62 | 137.43 | 95.62 | 179.47 | 137.66 | 194.99 | 89.42 | 158.14 |
| Базовые сценарии RaphP0(не учитывается в рейтинге) | |||||||||||||||||
endge.observed-writes | 1.03 | 1.46 | — | — | — | 1.22 | 1.16 | 2.13 | — | — | 2.24 | — | 4.10 | 4.47 | — | 1.48 | 3.15 |
endge.dynamic-switching | 1.47 | 1.39 | — | — | — | 1.39 | 1.65 | 2.71 | — | — | 2.56 | — | 5.26 | 6.03 | — | 1.43 | 3.49 |
endge.diamond | 1.70 | 2.45 | — | — | — | 1.97 | 2.39 | 3.77 | — | — | 4.06 | — | 8.11 | 6.25 | — | 2.10 | 5.27 |
| Пакетные изменения RaphP1(не учитывается в рейтинге) | |||||||||||||||||
endge.batch-1000 | 1.15 | 0.91 | 1.29 | 1.08 | 1.21 | 1.51 | 1.85 | 1.65 | 3.11 | 1.57 | 1.63 | — | 1.15 | 2.09 | 2.02 | — | 1.95 |
Оценка ниже учитывает только retained V8 heap. RSS и External показаны отдельно как диагностика. Сценарий сверяет computed, но не проверяет доставку эффекта после записи; корректность вынесена на отдельную вкладку.
Retained V8 heap@reactively
| Кандидат | Геосреднее |
|---|---|
| @reactively | 1.00 |
| MobX | 1.465 |
| Signia | 1.618 |
| SolidJS | 1.695 |
| $mol_wire | 1.725 |
| s-js | 1.746 |
| uSignal | 2.05 |
| AlienSignals | 2.457 |
| Oby | 2.485 |
| Raph | 2.498 |
| Solid Signals | 2.564 |
| reflex | 2.58 |
| @vue3.6 | 2.608 |
| Preact Signals | 2.797 |
| @vue3.5 | 2.881 |
| tansu | 3.233 |
| lite-signal | 3.298 |
Retained V8 heap · сценарии2 сценария · 17 кандидатов
| Сценарий | @reactively | MobX | Signia | SolidJS | $mol_wire | s-js | uSignal | AlienSignals | Oby | Raph | Solid Signals | reflex | @vue3.6 | Preact Signals | @vue3.5 | tansu | lite-signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| heapbytes | |||||||||||||||||
shared-static | 298 216 | 450 224 | 480 240 | 500 464 | 547 792 | 511 144 | 628 184 | 745 520 | 683 216 | 759 320 | 770 744 | 788 944 | 793 120 | 853 776 | 879 960 | 950 232 | 1 010 784 |
shared-reordered | 318 912 | 453 464 | 518 552 | 545 800 | 516 624 | 567 128 | 636 280 | 770 008 | 859 848 | 781 832 | 811 352 | 802 376 | 815 432 | 871 392 | 897 272 | 1 046 072 | 1 023 104 |
RSS · диагностика2 сценария · 17 кандидатов
| Сценарий | @reactively | MobX | Signia | SolidJS | $mol_wire | s-js | uSignal | AlienSignals | Oby | Raph | Solid Signals | reflex | @vue3.6 | Preact Signals | @vue3.5 | tansu | lite-signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| rssbytes | |||||||||||||||||
shared-static | 557 056 | 5 160 960 | 1 130 496 | 1 310 720 | 2 359 296 | 1 818 624 | 1 392 640 | 1 048 576 | 2 834 432 | 5 701 632 | 950 272 | 4 734 976 | 655 360 | 1 982 464 | 1 015 808 | 1 802 240 | 1 343 488 |
shared-reordered | 5 734 400 | 5 685 248 | 5 996 544 | 5 259 264 | 7 766 016 | 6 684 672 | 6 144 000 | 2 211 840 | 7 880 704 | 6 176 768 | 5 586 944 | 4 800 512 | 4 243 456 | 3 440 640 | 3 964 928 | 2 916 352 | 1 146 880 |
External · диагностика2 сценария · 17 кандидатов
| Сценарий | @reactively | MobX | Signia | SolidJS | $mol_wire | s-js | uSignal | AlienSignals | Oby | Raph | Solid Signals | reflex | @vue3.6 | Preact Signals | @vue3.5 | tansu | lite-signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| externalbytes | |||||||||||||||||
shared-static | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 |
shared-reordered | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 |
Методика и исходные данные
Корректность показана отдельно и не исключает кандидата из оценок скорости или памяти. Рейтинг производительности пересчитан для 17 кандидатов по сохранённому performance.json: из 38 Production-сценариев 31 имеет сопоставимые значения для всех кандидатов и достаточное разрешение таймера. Сначала вычислено относительное геометрическое среднее внутри каждого семейства, затем геометрическое среднее семейств с весами P0 = 3 и P1 = 2. 7 остальных строк показаны в таблице, но не входят в итог. Их цвета сравнивают только имеющиеся замеры и не влияют на рейтинг. Stress в Production не входит.
Оценка памяти пересчитана для 17 кандидатов по сохранённому memory.json только из 2 строк retained V8 heap. Каждая строка нормирована на минимальное измеренное значение, затем взято геометрическое среднее отношений. RSS и External оставлены отдельными диагностическими таблицами и не влияют на место. Для каждой метрики отдельно взята медиана исходных образцов. Замер сохраняет живой граф после принудительной сборки мусора; освобождение графа и память вкладки браузера он не измеряет. Этот memory-сценарий проверяет сумму computed, но не проверяет последующее обновление эффекта. Цвета строк heap обозначают первые три группы с порогом 5%; цветные итоговые строки — первые три места. В корректности зелёный означает полный успешный проход, оранжевый — от одного до восьми отклонений, красный — девять и более или незавершённый запуск.
Из показанных строк производительности 4 неполные и 3 ниже порога разрешения таймера. Профиль: full; исходный протокол: reactivity-family-v2; 3 ротации. Порог 5% группирует близкие значения и не является статистической погрешностью. Данные отчёта ↗
Исходные JSON: summary.json ↗ · performance.json ↗ · correctness.json ↗ · memory.json ↗.