angular / angular/components

[Sidenav] Memory leak when used inside router-outlet

オープン
#8,862 コメント 17 件 リアクション 1 件 担当者 0 名 GitHub で見る
area: material/sidenav P3 perf
主要言語
TypeScript
スター
25k
フォーク
6.8k
平均マージ
1日 8時間
マージ済み PR(30日)
91

説明

#### Bug, feature request, or proposal:

When a sidenav is used "inside" router-outlet, it seems there is a memory leak. When the router-outlet is inside the sidenav, there is no problem.

I use the "Take heap snapshot" of Chrome to see the problem.

#### What are the steps to reproduce?

Sample available on:

https://stackblitz.com/edit/angular-material2-issue-xmgukp?file=app%2Fapp.component.ts

Open in Chrome:

https://angular-material2-issue-xmgukp.stackblitz.io/

- Switch between "one" and "two" routes a few times.
- Take a heap snapshot
- Switch again between routes
- Take another snapshot and compare => OneComponent and TwoComponent are not freed (among many other objects...)

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

リンクされた StackBlitz の再現手順から始め、sidenav 内で one と two のルートを切り替えてリークを再現します。追加の切り替えの前後で Chrome のヒープスナップショットを比較します。完了条件は、OneComponent と TwoComponent、および関連するオブジェクトが保持されずに解放されることです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
angular, typescript
領域
frontend, performance
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。