Adopting the compiler at Wakelet.com in production. #52
Replies: 2 comments 4 replies
-
|
hello @NickBlow 👋 |
Beta Was this translation helpful? Give feedback.
-
|
Really want to question these numbers a bit @NickBlow ; When I go to https://playground.react.dev and paste components in this is what I see
With 1-3 in mind; How can LCP improve? Does anyone have a component input/output from React-Compiler example where the instruction set on the "output" side has made first render faster? Everything 1-3 is a LCP de-optimization. Re-renders are another story, I believe it makes re-renders faster (reading output) but specifically mount is something I'm interested in. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
As we have a quite large codebase at wakelet.com, it took a while to roll the compiler out as we kept hitting edge cases and odd issues with our components (usually us doing weird things).
However, to the team's credit, all of those have since been resolved or had trivial workarounds. We finally rolled out the compiler to 100% of users in November, and I just wanted to share some of the stats.
We've not had any major issues reported, and of those that were reported, all of them were just existing bugs that were surfaced by the compiler, which is another advantage of the model - excessive re-rendering can hide a lot of data races.
We've now had enough time to collect data about the performance improvement. We saw big improvements in INP, and modest improvements in LCP. The metrics we collect are quite coarse grained, but they paint a nice story.
Overall, our LCP improved by 10% (2.6s -> 2.4s), and our INP improved by about 15% (275ms -> 240ms).
Doing more granular testing, we saw the biggest gains in elements that were pure React (such as Radix dropdowns), where the INP speedup was closer to 30%. However, built in UI elements still saw an INP speedup.
It's not a panacea - we still have a lot of work to improve these numbers ourselves, so it didn't magically solve all our performance problems. However, this was as close to a 'free lunch' as possible, it didn't take a huge amount of effort to implement and has had concrete improvements to our UX and lighthouse metrics.
Beta Was this translation helpful? Give feedback.
All reactions