Угловые утечки памяти с огромным количеством отдельных узлов (используя entryComponents) - PullRequest
2 голосов
/ 18 марта 2019

У меня есть простое приложение, которое использует entryComponents с ComponentFactoryResolver.resolveComponentFactory для ввода компонентов в зависимости от данных с очень высокой скоростью. Я использую viewContainerRef.clear();, и у каждого внедренного компонента есть метод OnDestroy. Насколько я знаю, мой код ничего не пропускает (отказываясь от подписки на все наблюдаемые при уничтожении), но почему Angular сохраняет все эти отдельные узлы в памяти?

Я использую много ngIf, ngFor, ngClass и т. Д. Я думаю, что сборщик мусора должен просто выбросить эти неиспользуемые узлы. Но он не делает.

Кто-нибудь знает, что я должен искать? Или мое основное предположение неверно, что об этом должен заботиться ясный человек? Если да, то как мне вручную вызвать OnDestroy и удалить компонент?

Chrome's memory snapshot analysis

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