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 --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
