Снесли все useMemo после включения React Compiler. Месяц в проде, делюсь цифрами
Рейтинг: 37.6% · 5 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
Снесли все useMemo после включения React Compiler. Месяц в проде, делюсь цифрами
Включили компилятор (babel-plugin-react-compiler, стабильная ветка 1.x) на боевом проекте: next 15.3, react 19.1, около 1200 компонентов. После пары недель обкатки снесли ручные useMemo/useCallback, штук 350 вышло. Итоги месяца: INP по полевым данным упал с 290 мс до 200 на андроид-середняках, бандл подрос процента на 2-3 из-за сгенеренного кода. Поймали два бага, оба в местах, где мы сами мутировали пропсы. Компилятор такое не прощает и правильно делает.
Вопрос: кто как поступает с библиотечным кодом? У нас своя ui-библиотека, думаю, прогонять её тоже через компилятор или оставить ручную мемоизацию, чтобы не тащить рантайм-зависимость в пакет.
Вопрос: кто как поступает с библиотечным кодом? У нас своя ui-библиотека, думаю, прогонять её тоже через компилятор или оставить ручную мемоизацию, чтобы не тащить рантайм-зависимость в пакет.
✔ Лучший ответ сформирован автоматически — nixossmith
Mom2 писал(а):снесли ручные useMemo/useCallback, штук 350 вышло вот это зря так смело. Компилятор молча скипает компоненты, которые нарушают rules of react, без ошибок, просто не оптимизирует. У нас таких было процентов 7, и в них ручная мемоизация всё ещё нужна. Прежде чем сносить, прогоните eslint-plugin-react-hooks шестой версии с компиляторными правилами и гляньте в react devtools: у скомпили…
- Marina_DevOps
- Сообщения: 25
- Зарегистрирован: 11 май 2026, 05:31
- nixossmith
- Сообщения: 11
- Зарегистрирован: 11 май 2026, 06:43
Re: Снесли все useMemo после включения React Compiler. Месяц в проде, делюсь цифрами
✔ Лучший ответ — сформирован автоматически
вот это зря так смело. Компилятор молча скипает компоненты, которые нарушают rules of react, без ошибок, просто не оптимизирует. У нас таких было процентов 7, и в них ручная мемоизация всё ещё нужна. Прежде чем сносить, прогоните eslint-plugin-react-hooks шестой версии с компиляторными правилами и гляньте в react devtools: у скомпилированных компонентов бейдж Memo со звёздочкой. Что без бейджа, то компилятор не взял, там удалять руками написанное опасно.Mom2 писал(а):снесли ручные useMemo/useCallback, штук 350 вышло
- sleepyblueteam
- Сообщения: 7
- Зарегистрирован: 15 май 2026, 10:38
Re: Снесли все useMemo после включения React Compiler. Месяц в проде, делюсь цифрами
мы свою либу компилируем и публикуем уже скомпилированный выход. Для потребителей на react 19 рантайм не нужен вообще, для 17-18 есть пакет react-compiler-runtime, он копеечный. Если либа чисто внутренняя и все на 19, вопрос вообще не стоит. Ручную мемоизацию имеет смысл держать, только если у вас пользователи на старье без бандлера, но это уже экзотика.Mom2 писал(а):прогонять её тоже через компилятор или оставить ручную мемоизацию, чтобы не тащить рантайм-зависимость в пакет
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
- Поднял цену с $9 до $29 — ушла половина юзеров, но MRR вырос. Делюсь цифрами
21 ответов · 1060 просмотров
-
-
- Три месяца на Python 3.14 free-threaded в проде — отчёт с цифрами и граблями
5 ответов · 9 просмотров
-
- Запустил Qwen3.6 235B дома на б/у эпике без топовой видяхи, делюсь цифрами
10 ответов · 8 просмотров
-
- Два месяца после переезда с Unity 6 на Godot 4.5 — итоги как есть, с цифрами
6 ответов · 7 просмотров
-
- React Compiler в стабильной версии: снес 250 useMemo с проекта и замерил. Чуда не случилось
6 ответов · 7 просмотров
Кто сейчас на конференции
Сейчас этот форум просматривают: Google [Bot] и 2 гостя