Your trial period has ended!
For full access to functionality, please pay for a premium subscription
Message
AR
artalog
4 095 subscribers
33
18
1.5 k
Я тут постарался запилить реально сложный, а точнее разнообразный бенч динамических переподписок. Он проверяет 6 разных паттернов изменения порядка зависимостей реактивного компьютеда. Результаты (больше - лучше, т.е. 100% - эталон):

MEDIAN for 128,64,64,32,32,32,16,16,16,16,8,8,8,8,8,8,4,4,4,4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 subscribers

25% Reatom
40% mobx
42% $mol_wire
66% act
98% alien

https://github.com/reatom/reatom/blob/v1000/packages/core/bench_dynamic.ts#L749

Что, зачем я написал бенч, в котором моя либа на самом дне?)) Потому что объективность и совместная работа намного дороже личных побед ❤️

alien-signals - действительно сделали прорыв в перфе и это круто! Такие библиотеки и их авторы двигают всю нашу экосистему.

Хотя, свое решение я все же позащищаю. Что тормозит в реатоме? Строго говоря все. Он весь пропитан дополнительными фичами, которые его замедляют:

- система расширений
- виртуализация (контекст для тестов и ssr)
- иммутабельность для асинхронного контекста (отменить нельзя продолжить)

Все это уникальные фичи, которые открывают новые границы разработки. Очень важно понимать, что добавляя эти фичи не в монолит библиотеки, а дополнительными интерфейсами по необходимости мы дропнете перф эталона не в 4 раза (случай реатома), а в 10-20 раз.

И это не самое худшее, перф - вторичен, особенно при использовании любых сигнальных библиотек (сама архитектура с ними уже производительна).

Самая главная проблема без реатома - в зависимости от необходимости той или иной фичи - вам нужно будет переписывать или как-то еще рефаторить большую часть кода. Реатом же предоставляет единый контракт для ВСЕХ возможных фич, что радикально снижает ментальную нагрузку при игре в долгую 😎

P.S. любой бенч можно повернуть в нужную сторону, если захотеть :D
MEDIAN for 1024 subscribers
40% alien
51% mobx
57% Reatom
58% act
90% $mol_wire
04/13/2025, 02:17
t.me/artalog/1618
Similar message chronology:
Newest first
Similar messages not found