Hi eric,
the removeOverlay() you are telling about, is the one from gwt? what
argument do you pass?I've tried having a vector of markers, each time
i put a new marker in... then, after clearOverlays, i've tried with
this:
Iterator v = labeledMarkerVector.iterator();
while(v.hasNext())
 {
 //250209Miki: rimuovo anche overlay singolarmente
map.removeOverlay((LabeledMarker)v.next());

}
//250209Miki: e poi svuoto vettore di appoggio
labeledMarkerVector.clear();

but with no luck.. I don't undestand what take the removeOverlay
method... and if it could solve the problem
Thx
Michela

On 25 Feb, 21:58, Eric Ayers <zun...@google.com> wrote:
> In my tests, an implementation that uses 'removeOverlay()' didn't seem
> to leak after running a long time (although it used more memory than
> the pool implementation)
>
> The clearOverlays() leak is independent of the GWT wrappers, so about
> the best I can say for getting the memory leak resolved is to go to
> the issue and 'star' the issue.  You can post on the issue or on the
> Maps API list about why this is blocking for your application.
>
> Depending on how many icons you have, I think you could work around it
> by creating pools of markers by icon, and use some of the LabelMarker
> setters to reset the text labels.  If there is some functionality you
> need, since you have the source to LabeledMarker, maybe there is some
> enhancement you could make to it to help add a way to set resources
> after the LabeledMarker is constructed.
>
> -Eric.
>
>
>
> On Wed, Feb 25, 2009 at 2:54 PM, koalina <koalin...@gmail.com> wrote:
>
> > thx eric, the problem is that in gwt i have to instantiate a new
> > marker object every time i add a marker: in fact it's not possible to
> > update the "options", but they are defined only in the constructor.So,
> > how can i solve with this application?is there any patch for google
> > maps api for gwt?
> > thx,
>
> > Michela
>
> > On Feb 25, 6:24 pm, Eric Ayers <zun...@google.com> wrote:
> >> I've been able to reproduce a leak in pure JavaScript without any GWT.
> >>  This issue is described in the Maps API issue tracker
>
> >>http://code.google.com/p/gmaps-api-issues/issues/detail?id=945
>
> >> I attached some sample JavaScript for creating a pool of markers
> >> instead of removing them from the map.
>
> >> -Eric.
>
> >> On Wed, Feb 25, 2009 at 9:48 AM, koalina <koalin...@gmail.com> wrote:
>
> >> > hi all,
> >> > I've tried as suggested by jason with this semplified piece of code:
> >> > public class MainEntryPoint implements EntryPoint{
>
> >> >    private Marker marker;
> >> >    private MapWidget map;
>
> >> >    public MainEntryPoint() {
> >> >    }
>
> >> >    /**
> >> >     * The entry point method, called automatically by loading a
> >> > module
> >> >     * that declares an implementing class as an entry-point
> >> >     */
> >> >    public void onModuleLoad() {
>
> >> >        map = new MapWidget(LatLng.newInstance(38.1890087,
> >> > 15.5648162), 12);
>
> >> >        map.checkResizeAndCenter();
> >> >        RootPanel.get().add(map);
> >> >        Timer t = new Timer(){
> >> >           �...@override
> >> >            public void run() {
> >> >                for (int i = 0; i < 10; i++)
> >> >                {
> >> >                    map.clearOverlays();
> >> >                    map.addOverlay(createMarker());
> >> >                }
> >> >            }
> >> >        };
> >> >        t.scheduleRepeating(3000);
>
> >> >        //180209Miki:per prima cosa devo caricare le api
> >> > *dinamicamente*
> >> >        //...poi tutto il resto di conseguenza
>
> >> >        //lookupKey(Window.Location.getHost());
>
> >> >    }
> >> >    public Marker createMarker()
> >> >    {
> >> >        marker = null;
> >> >        marker = new Marker(LatLng.newInstance(new Double(15), new
> >> > Double(38)));
> >> >        return marker;
>
> >> >    }
> >> > }
>
> >> > I would expect memory doesn't increase.. it doesn't
> >> > clearOverlays does not remove references with ie7
> >> > any workaround...?
> >> > please help, thx,
> >> > Michela
>
> >> > On 24 Feb, 20:22, koalina <koalin...@gmail.com> wrote:
> >> >> commenting the addOverlay, memory usage is costant...
> >> >> that's why i think there's something wrong with the clearOverlays..
> >> >> thx for help,
> >> >> michela
>
> >> >> On Feb 24, 5:47 pm, Eric Ayers <zun...@google.com> wrote:
>
> >> >> > 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 <koalin...@gmail.com> 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 <zun...@google.com> 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 <koalin...@gmail.com> 
> >> >> > >> 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 <alexey.tsiunc...@gmail.com> 
> >> >> > >> > 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 <koalin...@gmail.com> 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);
>
> >> ...
>
> >> read more »
>
> --
> Eric Z. Ayers - GWT Team - Atlanta, GA USAhttp://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 Google-Web-Toolkit@googlegroups.com
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to