Guys please help, I'm passing throuth the same problem, the moderator from smargwt forum told me to call destroy() in components that i don't need anymore, but my architecture uses MVP, and i have only one container which changes the content to render diferent pages... when I call destroy() in him and then I put the new component, he doesn't render anymore.
I have an aplication getting into production and I am passing throuth memory leak crashes on browser... If someone can help me, pliz help. I'm desperate, -- Marcos Paulo Damasceno Desenvolvedor Java (85) 8140-0111 Twitter: www.twitter.com/_marcospaulo_ Del.ici.ous: www.delicious.com/marcospaulo_ MSN: [email protected] ------------------------------------------------------------------------------------------------------------------------ "Grandes resultados requerem grandes ambições." (Heráclito) “Se suas ações inspiram outros a sonhar mais, aprender mais, fazer mais, tornar-se mais, você é um líder.” (John Quincy Adam) "Se tudo fosse perfeito, amanhã não poderia ser melhor" 2010/8/27 chrisr <[email protected]> > Sorry for posting this twice. If a moderator wants to/can remove the > duplicate go ahead. > > On Aug 25, 2:56 pm, chrisr <[email protected]> wrote: > > I created a simple application in an attempt to reproduce a memory > > leak issue in our decently large GWT application. > > > > This test application basically contains a split panel with a button > > on the left, and a tab panel full of large blocks of text on the > > right. > > Clicking the reload button fires the reloadRight method, and does a > > panel.clear() to remove the old tab panel and a panel.add() to add a > > new tab panel to the right panel. Doing this repeatedly causes memory > > consumption to increase without bounds. > > > > For example, on the initial load IE7 uses around 35 MB. 125 clicks > > later its using nearly 1.5GB. > > > > Is this example doing something in a fundamentally incorrect way? > > How can I keep memory usage from exploding like this? > > > > /* Example Below */ > > > > package com.example.myproject.client; > > > > import com.google.gwt.core.client.EntryPoint; > > import com.google.gwt.event.dom.client.ClickEvent; > > import com.google.gwt.event.dom.client.ClickHandler; > > import com.google.gwt.user.client.ui.Button; > > import com.google.gwt.user.client.ui.DecoratedTabPanel; > > import com.google.gwt.user.client.ui.DecoratorPanel; > > import com.google.gwt.user.client.ui.HTML; > > import com.google.gwt.user.client.ui.HTMLPanel; > > import com.google.gwt.user.client.ui.HorizontalSplitPanel; > > import com.google.gwt.user.client.ui.RootPanel; > > > > /** > > * Entry point classes define <code>onModuleLoad()</code>. > > */ > > public class TestApplication01 implements EntryPoint { > > > > /** > > * This is the entry point method. > > */ > > public void onModuleLoad() { > > RootPanel.get("container").add( new MainPanel() ); > > } > > > > private class MainPanel extends DecoratorPanel{ > > > > private HorizontalSplitPanel hsp; > > private HTMLPanel lPanel; > > private HTMLPanel rPanel; > > private DecoratedTabPanel tabPanel; > > int rightPanelCount = 0; > > > > public MainPanel(){ > > hsp = new HorizontalSplitPanel(); > > hsp.setSplitPosition("25%"); > > hsp.setSize("800px", "400px"); > > lPanel = new HTMLPanel("<div > id=\"reloadButton\"/>"); > > > > rPanel = new HTMLPanel("<div > id=\"right-panel-contents\"/>"); > > Button reloadButton = new ReloadButton(this); > > reloadButton.setVisible(true); > > lPanel.add( reloadButton, "reloadButton" ); > > hsp.setLeftWidget(lPanel); > > hsp.setRightWidget(rPanel); > > this.add( hsp ); > > reloadRight(); > > } > > > > char[] chars = new char[] {' ',' ',' ', ' ', ' ', > > 'a','b','c','d','e','f','g','h','i','j','k','l','m', > > > 'n','o','p','q','r','s','t','u','v','w','x','y','z' }; > > > > private String getSomeText(int length){ > > StringBuffer sb = new StringBuffer(length); > > for ( int i=0; i<length; ++i ){ > > > > sb.append( chars[ (int)Math.round(Math.random()*(chars.length-1)) ]); > > if ( i>0 && i % 60 == 0 ) > > sb.append("<br>"); > > } > > return sb.toString(); > > } > > > > protected void reloadRight(){ > > ++rightPanelCount; > > rPanel.clear(); > > > > tabPanel = new DecoratedTabPanel(); > > tabPanel.setWidth("400px"); > > tabPanel.setAnimationEnabled(true); > > > > String text = "Load count = "+rightPanelCount; > > > > tabPanel.add( new > HTML(text+"<br>"+getSomeText((int) > > (Math.random()*500)+500000)), "Tab One"); > > tabPanel.add( new > HTML(text+"<br>"+getSomeText((int) > > (Math.random()*500)+500000)), "Tab Two"); > > tabPanel.add( new > HTML(text+"<br>"+getSomeText((int) > > (Math.random()*500)+500000)), "Tab Three"); > > tabPanel.add( new > HTML(text+"<br>"+getSomeText((int) > > (Math.random()*500)+500000)), "Tab Four"); > > tabPanel.add( new > HTML(text+"<br>"+getSomeText((int) > > (Math.random()*500)+500000)), "Tab Five"); > > tabPanel.selectTab(0); > > > > rPanel.add( tabPanel, "right-panel-contents" ); > > } > > > > private class ReloadButton extends Button{ > > > > private MainPanel mainPanel; > > > > public ReloadButton(MainPanel p){ > > super("Reload Right Panel"); > > this.mainPanel = p; > > this.addClickHandler(getClickHandler()); > > } > > > > private ClickHandler getClickHandler(){ > > return new ClickHandler(){ > > > > @Override > > public void onClick(ClickEvent > event) { > > mainPanel.reloadRight(); > > } > > }; > > } > > } > > } > > > > > > > > } > > -- > You received this message because you are subscribed to the Google Groups > "Google Web Toolkit" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-web-toolkit%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-web-toolkit?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" 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/google-web-toolkit?hl=en.
