React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось

Рейтинг: 61% · 6 голосов
Frontend и backend разработка: JavaScript, TypeScript, React, Next.js, Vue, Node.js, PHP, REST и GraphQL API, вёрстка HTML/CSS и современные веб-приложения.
Ответить
Аватара пользователя
radiomaker
Сообщения: 27
Зарегистрирован: 24 май 2026, 00:35

React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось

Сообщение radiomaker »

Дошли руки до React Compiler (который раньше Forget назывался), он уже год как стабильный, а у нас все не доходили руки. Проект: CRM, react 19, около 900 компонентов, мемоизация расставлена руками за годы, где по делу, а где карго-культом.

Что сделал: включил компилятор через babel-плагин, прогнал eslint-plugin-react-compiler. Линтер нашел 17 мест, где мы нарушали правила так, что компилятор отказывался оптимизировать, в основном мутации пропсов. Починил. Потом снес почти все ручные useMemo и useCallback, штук 250.

Замеры через неделю на проде, метрики с реальных юзеров, не лайтхаус:
INP: p75 был 215мс, стал 190мс. Заметно на дешевых андроидах, на десктопе разницы ноль.
Бандл: +4%, компилятор вставляет свой код кеширования.
Время разработки: вот тут главный выигрыш. Ревью чище, джуны больше не спрашивают, куда пихать useCallback.

Вывод: это не про скорость, это про то, что мемоизация перестала быть моей проблемой. У кого-то вышло заметнее?
👍2 ❤️ 🔥3 😄 🤔1
✔ Лучший ответ сформирован автоматически — krayzie
А что у вас с состоянием? У нас mobx, и observer-обертки с компилятором дружат криво, часть компонентов тихо перестала реагировать на изменения стора. В итоге включили компилятор в режиме annotation и помечаем только компоненты на чистом react state. Так что проверяйте не только метрики, но и поведение.
Перейти к ответу →
Аватара пользователя
tastytim
Сообщения: 18
Зарегистрирован: 12 май 2026, 19:20

Re: React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось

Сообщение tastytim »

так у тебя мемоизация уже стояла руками, что ты хотел увидеть. погоняй на проекте, где ее не было вообще. у нас на старом проекте без единого memo INP упал с 380 до 210, вот там компилятор отрабатывает
👍 ❤️1 🔥2 😄 🤔
Аватара пользователя
krayzie
Сообщения: 28
Зарегистрирован: 12 май 2026, 14:46

Re: React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось

Сообщение krayzie »

✔ Лучший ответ — сформирован автоматически
А что у вас с состоянием? У нас mobx, и observer-обертки с компилятором дружат криво, часть компонентов тихо перестала реагировать на изменения стора. В итоге включили компилятор в режиме annotation и помечаем только компоненты на чистом react state. Так что проверяйте не только метрики, но и поведение.
👍1 ❤️1 🔥 😄 🤔1
Аватара пользователя
dockersre
Сообщения: 11
Зарегистрирован: 14 май 2026, 21:37

Re: React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось

Сообщение dockersre »

p75 215 на 190 это в пределах шума, если выборка маленькая. сколько сессий в замере участвовало? без этого числа пост ни о чем, извини
👍 ❤️1 🔥 😄 🤔
Аватара пользователя
rabbit8
Сообщения: 41
Зарегистрирован: 13 май 2026, 08:48

Re: React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось

Сообщение rabbit8 »

+4% бандла за право не думать про мемоизацию, честная сделка. Расставленный руками useMemo это худшее, что есть в реакте, половина всегда стоит не там, где тормозит, проверено профилировщиком раз двадцать.
👍 ❤️1 🔥 😄 🤔
Аватара пользователя
jwil1440
Сообщения: 51
Зарегистрирован: 11 май 2026, 05:07

Re: React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось

Сообщение jwil1440 »

@tastytim, читаю и умиляюсь. целый компилятор завезли, чтобы починить то, что в свелте и солиде не ломалось by design. перерисовка всего дерева на каждый чих была ошибкой архитектуры, просто признать страшно
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
eelvis
Сообщения: 6
Зарегистрирован: 24 май 2026, 11:33

Re: React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось

Сообщение eelvis »

ну началось, сигнальщики в треде. реакт может позволить себе компилятор именно потому, что модель простая: данные вниз, рендер заново, все предсказуемо. а в твоем солиде зато отладка эффектов это удовольствие ниже среднего, каждому свое
👍1 ❤️ 🔥1 😄1 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Веб-разработка»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость