Dialog causes memory leak when dialog component contains a <button>
See original GitHub issueBug, feature request, or proposal:
Instantiating a dialog with a component that contains a regular HTML <button>
element causes a DOM node memory leak.
What is the expected behavior?
No memory leak
What is the current behavior?
Memory leak
What are the steps to reproduce?
https://stackblitz.com/edit/angular-material2-issue-dhmjle?file=app/app.module.ts
- Open Chrome performance monitor
- Click Memory > Garbage collect
- Note the initial DOM node count (around 53)
- Click the “No leaks on div” button a few times and watch the DOM node count climb
- Close any open dialogs and press the “Garbage collect” button again
- Watch the DOM node count decrease to around the initial value (plus some “sticky” dialog nodes that intentionally stick around)
- Click the “Leaks on button” button a few times and watch the DOM node count climb
- Close any open dialogs and press the “Garbage collect” button
- Note that the DOM node count does not decrease to the initial value
What is the use-case or motivation for changing an existing behavior?
Performance
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Latest StackBlitz (Material 5.1.0, Angular 5.2.1), Windows 10, Chrome v64.0.3282.186 64-bit
Is there anything else we should know?
Could be related to https://github.com/angular/angular/issues/20228
Issue Analytics
- State:
- Created 6 years ago
- Reactions:8
- Comments:6 (2 by maintainers)
Top Results From Across the Web
React memory leaks warning with using a stateful button in a ...
This is the memory leaks warning I get when I click a button inside either an Alert or Dialog component: index.js:1437 Warning: Can't...
Read more >Memory Leak after disposing a dialog? - Telerik
The problem is that every time that I call ShowDialog after the Form is disposed for first time the memory increases like 5-10...
Read more >Managing dialogs (multiple screens) - Embedded Wizard
The application contains three embedded Dialog components. All components are configured as invisible. In the bottom area you see three buttons.
Read more >DialogFragment - Android Developers
This fragment contains a Dialog object, which it displays as appropriate based on the fragment's state. Control of the dialog (deciding when to...
Read more >Everything you need to know about Memory Leaks in Android.
One of the core benefits of Java, or to be more accurate, of the JVM (Java Virtual Machine), is the garbage collector (GC)....
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Should be fixed in
core
by https://github.com/angular/angular/pull/34409.Exact same behavion on Angular 6