Skip to content

Performance and Benchmarks #6

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

Open
medz opened this issue Feb 26, 2025 · 3 comments · May be fixed by #7
Open

Performance and Benchmarks #6

medz opened this issue Feb 26, 2025 · 3 comments · May be fixed by #7
Labels
enhancement New feature or request

Comments

@medz
Copy link

medz commented Feb 26, 2025

Image

Test Report:

Framework Test Case Time (μs)
reactter avoidablePropagation (success) 1246122
reactter broadPropagation (success) 4989682
reactter deepPropagation (success) 3999993
reactter diamond (fail) 14030768
reactter mux (success) 1022652
reactter repeatedObservers (success) 9744089
reactter triangle (success) 4518305
reactter unstable (success) 7640850
reactter molBench 5896885
reactter create_signals 13341
reactter comp_0to1 13681
reactter comp_1to1 99563
reactter comp_2to1 72373
reactter comp_4to1 85231
reactter comp_1000to1 59322
reactter comp_1to2 66888
reactter comp_1to4 99179
reactter comp_1to8 116368
reactter comp_1to1000 47899

Test file: https://github.com/medz/dart-reactivity-benchmark/blob/main/frameworks/reactter.dart

Hi, your library API is well designed👍. But I am benchmarking reactivity in Dart ecosystem, and I found that reactter is running slowly, which may be caused by the following problems:

  1. Extensive use of Set/List leads to increased memory

  2. My integration code is implemented incorrectly.

It is worth noting that when my test runs to 1 to 1000 tests, it cannot continue to run and the program has been locked.

reactter performs well in small scale, but it will be very slow when encountering a scale of more than 100. In addition, reactter has serious memory leak problems.

@medz
Copy link
Author

medz commented Feb 26, 2025

If you feel it is not good enough for benchmarking and you don't want to continue improving it, please close this issue.

It is worth mentioning that I have successfully helped Solidart improve performance by more than 1000% by writing these benchmarks and the alien_signals package. If you want, you can use this benchmark to continue improving reactter ❤️

@medz
Copy link
Author

medz commented Feb 26, 2025

In addition, I hope to get your help to integrate reacter well for testing. Sorry, there are too many APIs of reactter. There may be a problem with my integration. I hope to get your help to correct and optimize it❤️

@CarLeonDev
Copy link
Contributor

If you feel it is not good enough for benchmarking and you don't want to continue improving it, please close this issue.

It is worth mentioning that I have successfully helped Solidart improve performance by more than 1000% by writing these benchmarks and the alien_signals package. If you want, you can use this benchmark to continue improving reactter ❤️

Of course, I take it!
I am checking your benchmarks to improve Reactter.

Any adjustments I'll let you know.
By the way, I congratulate you for your project, it is very useful.

Thank you!!

@CarLeonDev CarLeonDev added the enhancement New feature or request label Mar 15, 2025
@CarLeonDev CarLeonDev linked a pull request Mar 15, 2025 that will close this issue
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants