|
As many web devs know, its relatively easy to build a site which results in memory leaks when viewed in Internet Explorer. IE team members have written MSDN articles on leak patterns, and other sites have posted articles with varying tone, depending on the authors frustration with the problem.
These memory leaks often occur as a result of circular references between Jscript objects and objects within IEs DOM (document object model). Since the Jscript engine and IE have independent memory management schemes, each side cant see the entire cycle of these circular references.
Internet Explorer 7 improved the situation by releasing all references to Jscript objects attached to the DOM tree when IE navigates away from that page. This allows the Jscript engine to then garbage collect those Jscript objects and recover that memory. Weve also made the same changes in IE6 on Windows XP SP2 (shipped originally with the June Update). However, as some web developers have pointed out, those changes dont solve the problem entirely. IE still leaves behind anything not attached to the tree when we tear down the markup. In addition, sites that users keep open for extended periods of time, such as Web-based mail, can still cause IEs memory usage to continually grow if the site doesnt take care to avoid the leak patterns.
So no, its not perfect, but were also continuing to invest in improvements for future versions of IE.
In the meantime, tools and best practices can help web developers find and remove leaks today.
|