Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance benchmark comparison with other reactive TS libs #33

Open
transitive-bullshit opened this issue Sep 15, 2024 · 2 comments
Open

Comments

@transitive-bullshit
Copy link

transitive-bullshit commented Sep 15, 2024

Benchmark Results

Framework average benchmark results Raw results CSV (lower times are better)

These results are from my fork of @milomg's excellent js-reactivity-benchmark, which aggregates signal benchmarks from several libraries together.

I know the signals-polyfill is still a proof-of-concept, but I wanted to create an issue to track relative perf regardless, especially since its relative perf was so poor. I also wanted to double check that the signal-polyfill benchmark adapter by @NullVoxPopuli is correct in terms of comparing with the other libs in a fair, apples-to-apples way.

Lastly, if there are any obvious perf improvements that you notice, please let me know and I'll consider working on them.

Benchmark Notes

Some libs like MobX and Valtio are not included in the average results summary because they fail to run some of the benchmark tests.

None of the benchmark tests use deep reactivity of objects, though many of them do test performance on deep graphs of shallow signals. It would be interesting to compare performance of deeply reactive objects / arrays / Map / Set objects in the future.

These results were last updated September 2024 on an M3 Macbook Pro using Node.js v22.4.1.

@transitive-bullshit
Copy link
Author

Updated benchmark after several fixes and adding several new frameworks:

Average benchmark results across frameworks (lower times are better)

@NullVoxPopuli
Copy link
Contributor

Is there a way to add this as a GH Workflow?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants