169 похожих чатов

22 ответов

5 просмотров
Igor-Lobanov Автор вопроса

создание функций — не лишние?

Igor-Lobanov Автор вопроса

поясни как это здесь роляет

создание функций условно-бесплатное - предыдущий инстанс соберется garbage collector'ом, а какие-то компоненты "лишний" раз перерендерятся. оба эти процесса занимают цпу useCallback в свою очередь предотвращает пересоздания и перерендеры, но это кеш. кеши надо где-то хранить (подсказка: в оперативке) и кроме того с кешом надо сверяться при каждом рендере (пересчитывать ключ кеша), чтоб достать результаты, что тоже требует цпу. во многих случаях сумма ресурсов во втором варианте превышает сумму ресурсов в первом

это ж что за случаи такие, что кеш > работы

не поверишь, как часто я вижу такие useCallback и useMemo

Igor-Lobanov Автор вопроса

реально получилось что-то ускорить убрав useCallback/memo?

нет задачи "ускорить убрав". юзколлбек - это оптимизация. первое правило оптимизации - не оптимизировать преждевременно

я в плане того, что помимо того, что в реакте происходит и далее в reactdom, там чтобы перерисовать что-нибудь на экране - дофига всего происходит это надо на flamegraph-ах смотреть профит одного над другим

с таким подходом я согласен. но большинство ничего про флеймграф не слышали, а просто оборачивают все

В смысле

Или ты из тех кто думает что благодаря юз колбеку не создается функция?)

Функция-то создается? Чего от темы уходить?

Igor-Lobanov Автор вопроса

Если фунция всегда одна, то делаю вывод, что один раз создаётся

Igor-Lobanov Автор вопроса

Это хуйня какая-то :)

Igor-Lobanov Автор вопроса

да, хороший пример, создаются функции

А если я эту функцию заинлайню, что будет?

Igor-Lobanov Автор вопроса

ток в таком случае они действительно могут быть гарбадж коллектором сразу собраны, в отличие от ситуации когда их в другие компоненты передали

Разница в чем?

Тут нет разницы, даже если оно по дереву 500 раз прокинется - соберется потом прошлый экземпляр

Igor-Lobanov Автор вопроса

если куда-то передали то убивать нельзя, не?

Ну вот, а по факту разницы никакой)

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
61
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Привет всем. Не знаю, удачный ли чатик я выбрал для вопроса, но он как будто в целом про концепцию фп и конкретно про Haskell. Прочитал, что в целом в мире фп нет идеи мутабел...
Gellert Cringewald
15
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
Как добавить ссылку в Быстрый доступ в Проводнике windows 10? Нашёл, как на power shell сделать, но может есть способ через Дельфи?
А
31
@helgispbru @Dreamer_0x01 @Pathologic93 @webber_12 Не уверен, что вам всем это жутко интересно, но в продолжение недавнего диалога отправлю свои наброски. Хочу понять, правил...
Андрей [aharito] Харитонов
13
Карта сайта