IE7 has a dead beat garbage collector. The memory will not be reclaimed when you destroy components. When you create an object, IE allocates memory on the local machine to run it - destroying the object will not reclaim that lost memory. No matter what you do, IE will not reclaim the memory unless the browser is fully refreshed.
IE8 fixed some of these issues, but not all of them. I ran into this same issue with an enterprise web application and we almost scrapped GWT-EXT because of it, but we managed to work around it. The memory problem is a very big one with GWT-Ext. But you are not out of luck, because you can still work with it if you are creative with your interfaces and very conservative about of objects/elements you use. The most important thing to remember is NEVER destroy anything - only HIDE things and re-use them. And be especially careful with windows and tab panels. Another way I have seen it rectified is more architecture based. If you base your entire application in frames you can refresh pieces of the frameset and it will reclaim the memory used by the widget in that frame. That is very complicated though. .hide() and .show() are your friends... Adam -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of kk Sent: Thursday, April 16, 2009 2:21 AM To: GWT-Ext Developer Forum Subject: TabPanel Memory Issue Hi, I have a gwt-ext tab panel that dynamically creates tabs. These tabs can contain multiple gwt-ext widgets. When I try to close these tabs, I notice that the memory indicated via the task manager of Internet explorer does not decrease. My question is: Should/Would IE7 free up the memory when we close these tabs? I have tried to manually destroy the tabs by overriding the doBeforeRemove() method and calling the panel.destroy() method there, but it does not free up memory. We are overridding the following method in the PanelListenerAdapter of the TabPanel @Override public boolean doBeforeRemove(Container self, Component component) { Panel pp = appTabPanel.getItem(component.getId()); if(pp != null){ // Attempting to destroy/remove the tab pp.destroy(); pp.removeAll(true); pp.removeFromParent(); pp = null; } return true; } Any help would be appreciated. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "GWT-Ext Developer Forum" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/gwt-ext?hl=en -~----------~----~----~----~------~----~------~--~---
