React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось
Рейтинг: 61% · 6 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
- radiomaker
- Сообщения: 27
- Зарегистрирован: 24 май 2026, 00:35
React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось
Дошли руки до React Compiler (который раньше Forget назывался), он уже год как стабильный, а у нас все не доходили руки. Проект: CRM, react 19, около 900 компонентов, мемоизация расставлена руками за годы, где по делу, а где карго-культом.
Что сделал: включил компилятор через babel-плагин, прогнал eslint-plugin-react-compiler. Линтер нашел 17 мест, где мы нарушали правила так, что компилятор отказывался оптимизировать, в основном мутации пропсов. Починил. Потом снес почти все ручные useMemo и useCallback, штук 250.
Замеры через неделю на проде, метрики с реальных юзеров, не лайтхаус:
INP: p75 был 215мс, стал 190мс. Заметно на дешевых андроидах, на десктопе разницы ноль.
Бандл: +4%, компилятор вставляет свой код кеширования.
Время разработки: вот тут главный выигрыш. Ревью чище, джуны больше не спрашивают, куда пихать useCallback.
Вывод: это не про скорость, это про то, что мемоизация перестала быть моей проблемой. У кого-то вышло заметнее?
Что сделал: включил компилятор через babel-плагин, прогнал eslint-plugin-react-compiler. Линтер нашел 17 мест, где мы нарушали правила так, что компилятор отказывался оптимизировать, в основном мутации пропсов. Починил. Потом снес почти все ручные useMemo и useCallback, штук 250.
Замеры через неделю на проде, метрики с реальных юзеров, не лайтхаус:
INP: p75 был 215мс, стал 190мс. Заметно на дешевых андроидах, на десктопе разницы ноль.
Бандл: +4%, компилятор вставляет свой код кеширования.
Время разработки: вот тут главный выигрыш. Ревью чище, джуны больше не спрашивают, куда пихать useCallback.
Вывод: это не про скорость, это про то, что мемоизация перестала быть моей проблемой. У кого-то вышло заметнее?
✔ Лучший ответ сформирован автоматически — krayzie
А что у вас с состоянием? У нас mobx, и observer-обертки с компилятором дружат криво, часть компонентов тихо перестала реагировать на изменения стора. В итоге включили компилятор в режиме annotation и помечаем только компоненты на чистом react state. Так что проверяйте не только метрики, но и поведение.
Re: React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось
так у тебя мемоизация уже стояла руками, что ты хотел увидеть. погоняй на проекте, где ее не было вообще. у нас на старом проекте без единого memo INP упал с 380 до 210, вот там компилятор отрабатывает
Re: React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось
✔ Лучший ответ — сформирован автоматически
А что у вас с состоянием? У нас mobx, и observer-обертки с компилятором дружат криво, часть компонентов тихо перестала реагировать на изменения стора. В итоге включили компилятор в режиме annotation и помечаем только компоненты на чистом react state. Так что проверяйте не только метрики, но и поведение.
Re: React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось
+4% бандла за право не думать про мемоизацию, честная сделка. Расставленный руками useMemo это худшее, что есть в реакте, половина всегда стоит не там, где тормозит, проверено профилировщиком раз двадцать.
Re: React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось
@tastytim, читаю и умиляюсь. целый компилятор завезли, чтобы починить то, что в свелте и солиде не ломалось by design. перерисовка всего дерева на каждый чих была ошибкой архитектуры, просто признать страшно
Re: React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось
ну началось, сигнальщики в треде. реакт может позволить себе компилятор именно потому, что модель простая: данные вниз, рендер заново, все предсказуемо. а в твоем солиде зато отладка эффектов это удовольствие ниже среднего, каждому свое
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
- Снесли все useMemo после включения React Compiler. Месяц в проде, делюсь цифрами
5 ответов · 12 просмотров
-
-
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость