-
Notifications
You must be signed in to change notification settings - Fork 89
Description
Some of the patterns that we have on todoMVC have caught my attention recently, particularly that we do some kind of mockup storage in many of the variations, which is usually a JS array that requires a lot of splices in the delete100items step. I think as a general principal we should not exercise the same JS API too many times across the benchmark.
Another one that caught my eye was setting the display style in web components in JavaScript instead of using attribute selectors. I think the performance of the latter is a better optimization target.
I created this draft PR #521 so everyone can take a look (and test) the changes, copying the results here.
Label | macos.arm64.local_0 | macos.arm64.local_1 | macos.arm64.local_2 | macos.arm64.local_3 |
---|---|---|---|---|
browser | Google Chrome | Microsoft Edge | Firefox | Safari |
version | 138.0.7204.158 | 138.0.3351.95 | 138.0.4 | 18.5.0.0.20621.2.5.11.8 |
os | macos 15.5 arm64 | macos 15.5 arm64 | macos 15.5 arm64 | macos 15.5 arm64 |
device | MacBookPro17,1 | MacBookPro17,1 | MacBookPro17,1 | MacBookPro17,1 |
cpu | Apple M1 8 cores | Apple M1 8 cores | Apple M1 8 cores | Apple M1 8 cores |
runs | 1 | 1 | 1 | 1 |
failed runs | 0 | 0 | 0 | 0 |
TodoMVC-WebComponents | 11.156666665772597 | 11.82666666706403 | 16.333333333333332 | 20.833333333333517 |
TodoMVC-WebComponents-Old | 13.643333332240582 | 14.316666669150193 | 17.9 | 23.000000000000167 |
TodoMVC-WebComponents-Complex-DOM | 14.856666666269302 | 14.879999998708566 | 21.833333333333332 | 26.400000000000258 |
TodoMVC-WebComponents-Old-Complex-DOM | 18.479999998708568 | 17.890000000596046 | 25.033333333333335 | 27.766666666666666 |
Score | 70.2810070365844 | 68.97575003170705 | 50.516728603241944 | 41.278491693043556 |
Comparison of sync and async steps:

EDIT: Updated perf numbers after fixing an important typo in the code