Почему растет нагрузка на CPU в Angular приложении?
Есть приложение в котором куча так называемых слайдов, в каждом слайде выводится список, в каждом элементе есть три поля, в которых реализованы компоненты, аналогичные селекту, с дополненным функционалом. Вначале все хорошо, но стоит начать выбирать в селекте значения(мультиселект), начинает расти нагрузка на CPU, потом она чуть-чуть спадает, но уже не до того уровня как было раньше. И чем больше изменений делаешь, тем все больше растет нагрузка. В итоге все доходит до того, что вся аппа начинает дико тормозит и загрузка CPU 100%.
P.S: Слайды могут добавляться, удаляться, мержиться, количество айтемов тоже меняется, в общем форма довольно интерактивная и похоже, что при любом изменении модели, начинает расти нагрузка на CPU. Angular 4
Мб Вы пользуетесь RxJs и не делаете unsubscribe?
Допустим у вас есть компонента и поток в сервисе. Компонента много добавляться, удаляться. И внутри она подписывается на события из потока в сервисе. Если так, то при удалении компоненты нужно делать dispose subscription-у в этой компоненте, а иначе обработчик все равно остается и съедает CPU
Александр Ман, возможно, это и съедало часть CPU, но проблема оказалась в модуле сайдбара, который разрабатывал не я и я не был в курсе что там происходит. А происходило нечто нехорошее) Стоял обработчил на ngAfterViewChecked и там, при каждом вызове создавался таймаут на пять секунд. Соответственно эта гора таймаутов и забивала весь ЦП, при этом, после первого срабатывания, таймаут ничего не делал.