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

Ребята как можно оптимизировать работу компонента ?

39 ответов

113 просмотров

А что случилось?

Zhadiger- Автор вопроса
Oleg Safonov
А что случилось?

мне такой вопрос задали

Zhadiger
мне такой вопрос задали

Скажите, что не знаете)

Zhadiger- Автор вопроса
Oleg Safonov
Скажите, что не знаете)

так ответа нет что ли😁

Нужно начать с измерений, без них вы не сможете узнать, что оптимизация сработала. В зависимости от того, где именно проблема, есть разные пути оптимизации. Обычно нужно либо сократить количество вызовов CD, либо ускорить сам CD, для первого подходит OnPush и дальше, если не помогло, вынос частых событий из зоны. Для второго - проверить что именно внутри CD тормозит, геттеры, пайпы, что-то еще. Мемоизировать или переписать логику

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

Илья Ярошевич
Геттеры дают сильную нагрузку?

угу, иногда до полного зависания приложения

Oleg Safonov
Неправда

да ну неужели, могут быть ситуации когда что-то вроде ngIf="isActive()" и isActive постоянно заставляет пересоздаваться компонент меняясь как flip-flop. У меня с каким-то редактором WYSYWIG было

Roman Zigzag
да ну неужели, могут быть ситуации когда что-то вр...

Тут нет геттера, тут вызов метода и хреновый компонент, скорее всего

Roman Zigzag
а геттер это не метод ?

Метод, но не каждый метод - геттер

Oleg Safonov
Метод, но не каждый метод - геттер

так я тебе написал что мой метод геттер, как ты не зная его реализации решил что он не геттер ?

Oleg Safonov
Я вижу скобки

а ты думаешь ангуляр обрабатывает как-то по другому если это геттер или метод ?

Roman Zigzag
а ты думаешь ангуляр обрабатывает как-то по другом...

Нет, так же. Но один плохой пример не значит, что нельзя пользоваться геттерами

Oleg Safonov
Нет, так же. Но один плохой пример не значит, что ...

ими нельзя пользоваться в шаблонах, те кто пользуются плохо знают ангуляр либо мало опыта

Roman Zigzag
да ну неужели, могут быть ситуации когда что-то вр...

а если isActive всегда тру возвращает во время жизни компонента то в чём тут может быть проблема?

как? пример пожалуйста

Может из полей?

Evgheni Чернявский
как? пример пожалуйста

ну вот например у тебя есть геттер isUserActive в сервисе. Потом юзер перестает быть active, а метод по прежнему возвращает true, потому что не было change detection

Evgheni Чернявский
как? пример пожалуйста

У него геттер видимо возвращает что то не зависимое от input'ов

Oleg Safonov
Может из полей?

а поля не переменные ?

Roman Zigzag
ну вот например у тебя есть геттер isUserActive в ...

а если isUserActive заменить на поле то всё станет збс?

Roman Zigzag
конечно

вопросов больше не имею

Roman Zigzag
угу, иногда до полного зависания приложения

эм... смотря что вы в этот геттер напихали

Ilya Chursin
эм... смотря что вы в этот геттер напихали

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

Roman Zigzag
ну с таким подходом можно вообще на все забить, и ...

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

Илья Ярошевич
Геттеры дают сильную нагрузку?

Геттеры не дают никакой нагрузки, кроме той, что внутри них. Если вы там не аллоцируете объекты в памяти и не итерируетесь по огромным массивам, то не заметите разницы

Maxim Afanasev
Геттеры не дают никакой нагрузки, кроме той, что в...

а то что компонент перерендеривается - это "никакая нагрузка" ?

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта