Yeah, you are right. One thing you could try is to comment out the 'addOverlay()' call and measure your memory again. You won't see anything, but it will tell you if this is the problem.
On Tue, Feb 24, 2009 at 11:39 AM, koalina <[email protected]> wrote: > > but i call the clerOverlays each time i run the timer.. at each loop > the markers should be deallocated... aren't they? > Michela > > On 24 Feb, 17:31, Eric Ayers <[email protected]> wrote: >> Think about what your code is doing here. >> >> You are allocating marker objects and adding them to the map every >> time your timer expires. >> The map will track these things for you until you call map.removeOverlay(). >> >> My guess is that you have hundreds of markers added to the map, all >> stacked on top of each other. >> >> http://gwt-google-apis.googlecode.com/svn/javadoc/maps/1.0/index.html >> >> On Tue, Feb 24, 2009 at 6:57 AM, koalina <[email protected]> wrote: >> >> > Hi all, I've found the cause of the memory leak isolating by some >> > piece of code. It seems not to be caused by gwt-ext but when I make >> > the map.addOverlay(createMarker(point, myObject)); >> >> > where createMarker is: >> >> > Icon icon = Icon.newInstance(baseIcon); >> >> > icon.setImageURL(GWT.getModuleBaseURL()+"images/"+getColor >> > (nave)+"_ship.png"); >> >> > GWT.log("Carico immagine "+icon.getImageURL(), null); >> > LabeledMarkerOptions options = LabeledMarkerOptions.newInstance >> > (); >> > options.setTitle(nave.getNomeNave()); >> > options.setIcon(icon); >> >> > options.setLabelText(String.valueOf(nave.getIdNave())); >> >> > options.setLabelClass("labeledMarker"); >> >> > //200209Miki: se l'id nave è lungo una solo cifra va bene >> > così... >> > if((Integer.toString(nave.getIdNave())).length()==1) >> > options.setLabelOffset(Size.newInstance(1, -26)); >> > //altrimenti devo shiftare la label di due posti a sinistra... >> > else >> > options.setLabelOffset(Size.newInstance(-2, -26)); >> > // >> >> > LabeledMarker marker = new LabeledMarker(point, options); >> >> > ((Marker)marker).addMarkerClickHandler(new MarkerClickHandler >> > () { >> >> > public void onClick(MarkerClickEvent event) { >> > //050209Miki: gestisco qui il popup informativo >> > InfoWindow info = map.getInfoWindow(); >> > info.open(event.getSender(), >> >> > new InfoWindowContent( >> > "<div style='width:150px;height:65px; font-size:12px' >> > " + >> > "class='info-window'>" + >> > //"<p><img width='35px' src='"+GWT.getModuleBaseURL() >> > +"'images/logonave.png' align='left'></p>" + >> > "Nome nave: <b>"+nave.getNomeNave()+"</b><br/>" + >> > "Localita' Partenza: " +nave.getLocalitaPartenza() >> > +"<br/>" + >> > "Localita' Arrivo: "+nave.getLocalitaPartenza()+"<br/ >> >>" //+ >> > //"Merci Pericolose a Bordo: " + >> > nave.getMerciPericolose()+"<br/></div>" >> > )); >> >> > } >> >> > }); >> >> > return marker; >> >> > It' squite strange but now I'm sure the issue is with this piece of >> > code.. >> > is map.clearOverlays(); sufficient to deallocate the previous >> > markers? >> > thx, >> > Michela >> >> > On 24 Feb, 10:56, Alexey_Tsiunchik <[email protected]> wrote: >> >> Hello, >> >> >> We already have discussion about GWT memory management >> >> here:http://groups.google.com/group/Google-Web-Toolkit/browse_thread/threa... >> >> >> Tuesday, February 24, 2009, 11:31:44 AM, you wrote: >> >> >> > I've tried reloading, I made a mistake some posts ago.. memory >> >> > decreases only if the browser is closed and then opened again. Only >> >> > reloading causes a bigger increment of memory usage. >> >> > On 24 Feb, 10:20, koalina <[email protected]> wrote: >> >> >> Hi alex, >> >> >> sorry but I can't see how fix the number of rows as I'm using a >> >> >> memoryProxy object. >> >> >> So, the timer is defined as follows: >> >> >> Timer t = new Timer() { >> >> >> >> public void run() { >> >> >> getShipInfo(); >> >> >> >> } >> >> >> >> }; >> >> >> where getShipInfo() is >> >> >> >> private void getShipInfo() { >> >> >> >> MainEntryPoint.getServiceWsNaviInMare().getInfoNaviInMare(new >> >> >> AsyncCallback() { >> >> >> >> public void onFailure(Throwable caught) { >> >> >> throw new UnsupportedOperationException("Not supported >> >> >> yet."); >> >> >> } >> >> >> >> public void onSuccess(Object result) { >> >> >> Vector listaNavi = (Vector) result; >> >> >> GWT.log("Lista Navi Ricevuta: "+listaNavi.toString(), >> >> >> null); >> >> >> if (listaNavi.size()>0) { >> >> >> >> Object[][] data = new Object[listaNavi.size()] >> >> >> [15]; >> >> >> Iterator i = listaNavi.iterator(); >> >> >> int index = 0; >> >> >> >> while (i.hasNext()) { >> >> >> Nave unaNave = (Nave) i.next(); >> >> >> data[index] = new Object[]{ >> >> >> unaNave.getIdNave(), unaNave.getNomeNave >> >> >> (), >> >> >> >> unaNave.getLocalita(), unaNave.getImbarco >> >> >> (), >> >> >> >> etc.... >> >> >> >> GWT.log("Nave "+data[index][0]+data[index] >> >> >> [1].toString(), null); >> >> >> >> index++; >> >> >> unaNave = null; >> >> >> >> } >> >> >> if (store!=null) { >> >> >> store.removeAll(); >> >> >> } >> >> >> MemoryProxy proxy = new MemoryProxy(data); >> >> >> ArrayReader reader = new ArrayReader(recordDef); >> >> >> store = new Store(proxy, reader); >> >> >> store.load(); >> >> >> store.commitChanges(); >> >> >> >> grid.reconfigure(store, columnModel); >> >> >> //240209Miki: x diminuire memory leak ... >> >> >> grid.clear(); >> >> >> data = null; >> >> >> proxy = null; >> >> >> reader =null; >> >> >> store = null; >> >> >> >> } >> >> >> } >> >> >> >> }); >> >> >> >> } >> >> >> >> I've tried with FF and there's no problem...so it's an issue with ie7. >> >> >> Can you see some big error in the code i posted just above? thx for >> >> >> help! >> >> >> Michela >> >> >> >> On 24 Feb, 09:48, "alex.d" <[email protected]> wrote: >> >> >> >> > Assuming adding/removing markers to/from the map is leakless (google >> >> >> > probably knows how to do this ;-) we are left with gwt-ext grid. >> >> >> > Every >> >> >> > 10 sec you remove old rows and add new ones. So you have some DOM- >> >> >> > Elements (a table row) that are removed/created every 10 seconds. >> >> >> > Probably it's a grid's particular implementation that leaks. But most >> >> >> > probably it's just IE that doesn't really remove garbage properly >> >> >> > even >> >> >> > when it can/should. So what can you do? >> >> >> > 1. If it's grid that leaks: dump it - implement smth. yourself with >> >> >> > vanilla GWT. >> >> >> > 2. It it's IE: let's say the total ammount of markers is never bigger >> >> >> > than 25 - you can create 25 rows in the table and instead of adding/ >> >> >> > removing them you just change the text. This way you'll have slightly >> >> >> > more memory allocated at the beginning but hopefully no leaks while >> >> >> > running because no DOM-Elements are created/removed. >> >> >> >> > hth >> >> >> >> > On 24 Feb., 09:14, koalina <[email protected]> wrote: >> >> >> >> > > Hi Jason, yes, reloading page cause memory usage fall out. >> >> >> > > My app is quite simple: a gwt ext tab panel, the first tab showing >> >> >> > > the >> >> >> > > map widget, the second one a gwt ext grid with a few rows (more or >> >> >> > > less 10), each one with some information about the markers showed. >> >> >> > > I've three "thread", implemented as Timer, which refresh positions >> >> >> > > of >> >> >> > > markers, informations and last update time. Each thread make a rpc >> >> >> > > call and is always running, even when the tab of interest is not >> >> >> > > active.... >> >> >> > > Do you see some critical issue in this application? >> >> >> > > thx for help, have a nice day >> >> >> > > Michela >> >> >> >> > > On 23 Feb, 20:55, Jason Essington <[email protected]> >> >> >> > > wrote: >> >> >> >> > > > Well, I've read various articles claiming that IE leaks like a >> >> >> > > > sieve >> >> >> > > > (don't have any references for you right now, but I'm sure google >> >> >> > > > could help). >> >> >> >> > > > One thing to try is does IE's memory usage come down when you >> >> >> > > > reload >> >> >> > > > the page, or load a new page? >> >> >> >> > > > -jason >> >> >> >> > > > On Feb 23, 2009, at 8:44 AM, koalina wrote: >> >> >> >> > > > > is there anyone who knows about memory leaks in this case?I've >> >> >> > > > > a >> >> >> > > > > tabPanel, but tab are not dinamically added, a MapWidget, >> >> >> > > > > periodically >> >> >> > > > > rpc to refresh marker on map >> >> >> > > > > I'm really getting crazy! >> >> >> > > > > thx, >> >> >> > > > > Michela >> >> >> >> > > > > On 23 Feb, 14:37, koalina <[email protected]> wrote: >> >> >> > > > >> I'm using google maps api for gwt, no memory leak found >> >> >> > > > >> gwt-ext, some leaks found, but it seems not to be my case... >> >> >> >> > > > >> please note that with JScript leaks detect there's no leak >> >> >> > > > >> found... >> >> >> > > > >> could it be a problem with ajaxLoader?or perhaps something >> >> >> > > > >> coming >> >> >> > > > >> from >> >> >> > > > >> timer.scheduleRepeating with rpc inside run body? >> >> >> > > > >> Michela >> >> >> >> > > > >> On 23 Feb, 14:29, Mahavir Jain >> >> ... >> >> leggi tutto > > > -- Eric Z. Ayers - GWT Team - Atlanta, GA USA http://code.google.com/webtoolkit/ --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
