Home Dashboard Directory Help
Search

memory leak in IE9, IE10 tables by peterwx


Status: 

Resolved
 as Postponed Help for as Postponed


Type: Bug
ID: 790340
Opened: 6/17/2013 5:55:14 PM
Access Restriction: Public
1
Workaround(s)
view
0
User(s) can reproduce this bug

Description



Given a single page AJAX app that loads a page and then uses javascript to dynamically destroy and rebuild the page over time.

Creating, destroying, and recreating tables via javascript in IE9 and IE10 leaks memory under a number of conditions, including rows with ids, cells with ids, code that references a 'row.cells'expression, even if it does not store or use the results, code that does not set row.innerHTML to null after invoking table.deleteRow() for the row.

EDIT: Tables created via insertAdjacentHtml() also leak if table/row/cell ids are used.

This leaks in IE9 and IE10 standards mode.

It does not leak in quirks mode.
It does not leak under IE9 if legacy javascript is enabled by the registry key

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_USE_LEGACY_JSCRIPT]
"iexplore.exe"=dword:00000001
Details
Sign in to post a comment.
Posted by peterwx on 8/7/2013 at 1:52 PM
Confirmed this still leaks horribly in IE11
Posted by Anupam Mittra on 7/23/2013 at 11:21 AM
Do you have any update on this issue?
Posted by Microsoft on 7/3/2013 at 3:26 PM
Thank you for your feedback. We will be investigating this issue further.

Best regards,

The Internet Explorer Team
Posted by peterwx on 6/21/2013 at 12:52 PM
I've updated the additional files you requested.
Posted by Microsoft on 6/21/2013 at 10:10 AM
Thank you for your feedback. We are currently investigating the issue you reported.In order to test this further we need some additional information:

Please send a Iediag and dxdiag report.

Here are the steps to create the reports:
A)Locate iediagcmd.exe in
1. C:\Program Files(x86)\Internet Explorer if you are using 64 bit Windows
2. C:\Program Files\Internet Explorer if you are using 32 bit Windows
B) Run iediagcmd.exe, this will open a black command window and this window gets closed by itself after few minutes.
C) You should find a IEDiag.cab file on your desktop.

Please generate DxDiag report.
a) On Start menu , type dxdiag.exe - click to run. (mouse over bottom left corner of the screen, right click, select run, type dxdiag and press OK.
b) Save all infortmation to the Desktop.

Please attach both files to this connect bug.

Best regards,
The Internet Explorer Team
Sign in to post a workaround.
Posted by peterwx on 6/17/2013 at 6:06 PM
The leaks in the first two examples can be avoided by rewriting the code not to reference the row.cells expression and/or setting row.innerHTML to undefined after removing the row.

Recycling id's may *sometimes* work if a feasible recycling algorithm can be found. The third example can be mitigated by recycling but I have not found a way to eliminate it completely even in this case.
File Name Submitted By Submitted On File Size  
5_rowid_cellid_cellref_leak.txt 6/17/2013 2 KB
1_noids_cellref_leak.txt 6/17/2013 2 KB
1_noids_cellref_leak.txt 6/17/2013 2 KB
2_noids_nocellref_leak.txt 6/17/2013 2 KB
IEDiag.cab (restricted) 6/21/2013 -
DxDiag.txt (restricted) 6/21/2013 -