localvoid / uibench

UI Benchmark
183 stars 20 forks source link

Added Solid #20

Closed ryansolid closed 5 years ago

ryansolid commented 5 years ago

Not sure if you are accepting pull requests here anymore (I see that a lot of the old implementations were removed). I thought it might be valuable to have another type of library in here. Most fine-grained libraries aren't equipped out of the box to handle repeat data snapshots very well either doing something very naively (and poorly) or sort of sidestepping the test. But it doesn't mean the approach can't handle these scenarios reasonably.

Anyway this adds Solid. This implementation definitely is setup with sCU in mind. The library does best on the opposite of the default settings (sCU enabled, and full render time) which feels like the normal scenario? But in any case I think it is important to contrast approaches.

https://github.com/ryansolid/solid-uibench

localvoid commented 5 years ago

I see that a lot of the old implementations were removed

I've removed links to benchmarks that I've implemented, except for React implementation. I've decided to add links to this list only from library authors.

Most fine-grained libraries aren't equipped out of the box to handle repeat data snapshots very well either doing something very naively (and poorly) or sort of sidestepping the test.

I agree that this benchmark isn't fair for libraries like Solid. When sCU is enabled, libraries like Solid are doing more work than vdom libraries in this benchmark. When I wrote this benchmark, I've focused on stress testing of several code paths in my library. For example, I though that it would be ok to make all children lists dynamic because at this time my library didn't have any difference in performance for dynamic or static lists, but in real applications there aren't many dynamic lists, so libraries that focusing on performance of static lists instead of dynamic lists (ivi >=0.20) will show worse numbers just because they have different priorities.

The library does best on the opposite of the default settings (sCU enabled, and full render time) which feels like the normal scenario?

I and several other library authors are using it for stress testing specific code paths, there is no "normal" scenarios. I've added sCU mode because when I've published an old vdom benchmark, there were alot of haters saying that this benchmark were complete garbage because React implementation didn't have sCU optimization, but in reality vdom benchmark were complete garbage because of completely different reasons :)