Hi, I think I get it ;
Here is what I obtained after a dump of jump's memory I loaded a shapefile, I deleted it from the menu, then I made a dump of the the heap in order to get the objects dependency graph with the jhat analyser : My 10 BasicFeatures are held in a list which in turn is referenced by a Collections$SingletonMap referenced by a SimpleFeatureCollectionRenderer referenced by a LayerRenderer referenced by a HashMap referenced by the RenderingManager What happens is that the rendering system has a kind of cache (layerToFeaturesMap in SimpleFeatureRenderer) which behaviour may be revealed by the following experience : load a shapefile --> 50 Mo commited (data + rendering) remove it --> 50 Mo commited (data + rendering) now load the shapefile --> 50 Mo commited (data + rendering) pan until shapefile is no more visible --> 45 Mo or so (just the data) remove layer --> 10 Mo (no more data in the cache, memory is free) but load the shapefile --> 50 Mo commited (data + rendering) remove the layer --> 50 Mo pan --> 50 Mo or so (cached data is prisonner !!) Hope that's help Michaël Sunburned Surveyor a écrit : > This may be a really stupid thing to suggest, but I'll throw it out > there anyways. > > In JUMP there is a LayerListener interface defined. Is it possible > that a plug-in would implement this interface in a way that would hold > onto a reference to a Layer object? > > For instance, I see that both the LayerEvent and FeatureEvent classes > allow you to obtain a reference to a Layer and/orLayerable. I think a > plug-in could [1] register itself as a LayerListener, [2] obtain a > reference to a Layer object when it receives either a LayerEvent or > FeatureEvent, and [3] keep a reference to the Layer object until the > plug-in is destroyed. > > If the problem behavior described is inconsistent it could be a > plug-in that is not alwaysor commonly used. > > This is just a suggestion. My work on the pluggable rendering system > has demonstrated how little I know about Java programming in general > and JUMP in particular. :] > > The Sunburned Surveyor > > On 5/21/07, *A. Craig West* <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > It seems likely that there are stale references somewhere, then. I > remember an older version of the GridBagLayout used to have a bug > where all obljects added to it were hung onto for the life of the > GBL, because the remove code didn't take refernces out of an > internal Hashtable. Has anybody tried something like JProbe on the > problem? I've had a fair amount of success with that in the past. > Conveniently, I now work for the company that wrote JProbe, so I'm > sure I can give it a go, if nobody else has... > -Craig > > On 5/21/07, *david alejandro garcia ortega* < [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > I think is a problem with the code, like Larry says , i think > is possible to free memory but the gc() doesn´t work because > there are references to the Layer. > > > > > DAVID GARCIA > > > ------------------------------------------------------------------------ > From: /"Larry Becker" <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>>/ > Reply-To: /"List for discussion of JPP development and > use." < jump-pilot-devel@lists.sourceforge.net > <mailto:jump-pilot-devel@lists.sourceforge.net>>/ > To: /"List for discussion of JPP development and use." < > jump-pilot-devel@lists.sourceforge.net > <mailto:jump-pilot-devel@lists.sourceforge.net>>/ > Subject: /Re: [JPP-Devel] Question?/ > Date: /Mon, 21 May 2007 11:55:47 -0500/ > > > Hi Craig, > > Good point, however if you close the task (project) all > memory is reclaimed, so it would seem to be possible to > reclaim it by removing a layer. > > Larry > > On 5/21/07, *A. Craig West* < [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > Do we know if this is a problem with references being > hung onto > internally, or just the standard Java VM behavior > where the Java VM > normally doesn't return memory to the OS? > -Craig > > On 5/21/07, Stefan Steiniger < [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: >> hei David, >> >> in case you don't know >> what sometimes can help a bit is to press the > "garbage collect" button >> of the help/about/info tab >> >> but only sometimes :I >> >> stefan >> >> david alejandro garcia ortega schrieb: >> > Thanks Larry i will try to find a solution to the > problem. >> > >> > DAVID GARCIA >> > >> > > > ------------------------------------------------------------------------ > >> > From: /"Larry Becker" < [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>>/ >> > Reply-To: /"List for discussion of JPP > development and use." >> > < jump-pilot-devel@lists.sourceforge.net > <mailto:jump-pilot-devel@lists.sourceforge.net>>/ >> > To: /"List for discussion of JPP development > and use." >> > < jump-pilot-devel@lists.sourceforge.net > <mailto:jump-pilot-devel@lists.sourceforge.net>>/ >> > Subject: /Re: [JPP-Devel] Question?/ >> > Date: /Mon, 21 May 2007 11:03:03 -0500/ >> > >> > Hi David, >> > >> > Welcome to the list. That is an excellent > question. I wish I had >> > an answer for you, but it is one of the > unsolved problems with JUMP >> > (all flavors I believe). In my tests, it is > not even consistent. >> > Sometimes removing a layer will free most of > the memory, but usually >> > it will not. >> > >> > There have been attempts made to fix the > problem in OpenJump. See >> > : >> > > > com.vividsolutions.jump.workbench.ui.plugin.RemoveSelectedLayersPlugIn >> > method remove(Layerable[]) which calls >> > > selectedLayers[i].getLayerManager().dispose(selectedLayers[i]) > and >> > does everything you could reasonably expect, > however much of the >> > memory, usually all of it, is still committed > after this code runs. >> > >> > Apparently some plugin(s) still have references > to the disposed >> > layers. Probably via a listener of some kind, > but no one has ever >> > tracked down the problem. >> > >> > David, you would be doing a great service to > the whole JUMP >> > community if you could find the solution to > this problem. >> > >> > regards, >> > Larry Becker >> > >> > On 5/21/07, *david alejandro garcia ortega* < > [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> >> > <mailto:[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>>> wrote: >> > >> > Hi I am working with the source code of > OpenJump and i have the >> > following question: >> > >> > When I load a dataset(shapefile) commited > memory is about >> > 150Mb, then when I remove the dataset the > commited memory is >> > about 140Mb. Why doesn´t memory free? >> > >> > I want to free memory when the layer is > turned invisible calling >> > dispose() of layer class, and when is > turned visible I load the >> > featurecollection again. But this not work > i can´t free memory. >> > What can i do? >> > >> > Thanks, and sorry for my English i am from > México. >> > >> > >> > > > ------------------------------------------------------------------------ > >> > Windows Live Spaces en Prodigy/MSN Haz clic > aquí >> > <http://g.msn.com/8HMBESMX/2743??PS=47575 > <http://g.msn.com/8HMBESMX/2743??PS=47575>>La red más > grande en >> > México y el mundo. >> > > > ------------------------------------------------------------------------- >> > This SF.net email is sponsored by DB2 Express >> > Download DB2 Express C - the FREE version > of DB2 express and take >> > control of your XML. No limits. Just data. > Click to get it now. >> > http://sourceforge.net/powerbar/db2/ >> > > _______________________________________________ >> > Jump-pilot-devel mailing list >> > Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net> >> > <mailto: > Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net>> >> > > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > <https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel> >> > >> > >> > >> > >> > -- >> > http://amusingprogrammer.blogspot.com/ > <http://amusingprogrammer.blogspot.com/> >> > >> > >> > >------------------------------------------------------------------------- > >> > >This SF.net email is sponsored by DB2 Express >> > >Download DB2 Express C - the FREE version of > DB2 express and take >> > >control of your XML. No limits. Just data. > Click to get it now. >> > > http://sourceforge.net/powerbar/db2/ >> > >> > >_______________________________________________ >> > >Jump-pilot-devel mailing list >> > > Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net> >> > >https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > <https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel> >> > >> > >> > > > ------------------------------------------------------------------------ >> > Comparte archivos de manera inmediata con Windows > Live Messenger en >> > Prodigy/MSN Haz clic aquí < > http://g.msn.com/8HMAESMX/2731??PS=47575> >> > >> > >> > > > ------------------------------------------------------------------------ > >> > >> > > > ------------------------------------------------------------------------- >> > This SF.net email is sponsored by DB2 Express >> > Download DB2 Express C - the FREE version of DB2 > express and take >> > control of your XML. No limits. Just data. Click to > get it now. >> > http://sourceforge.net/powerbar/db2/ > <http://sourceforge.net/powerbar/db2/> >> > >> > >> > > > ------------------------------------------------------------------------ > >> > >> > _______________________________________________ >> > Jump-pilot-devel mailing list >> > Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net> >> > > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > <https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel> >> >> ------------------------------------------------------------------------- > >> This SF.net email is sponsored by DB2 Express >> Download DB2 Express C - the FREE version of DB2 > express and take >> control of your XML. No limits. Just data. Click to > get it now. >> http://sourceforge.net/powerbar/db2/ > <http://sourceforge.net/powerbar/db2/> >> _______________________________________________ >> Jump-pilot-devel mailing list >> Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net> >> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > <https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel> >> > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 > express and take > control of your XML. No limits. Just data. Click to > get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > <https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel> > > > > > -- > http://amusingprogrammer.blogspot.com/ > >>------------------------------------------------------------------------- >>This SF.net email is sponsored by DB2 Express >>Download DB2 Express C - the FREE version of DB2 express > and take >>control of your XML. No limits. Just data. Click to get it > now. >> http://sourceforge.net/powerbar/db2/ > <http://sourceforge.net/powerbar/db2/> > >>_______________________________________________ >>Jump-pilot-devel mailing list >> Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net> >>https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > <https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel> > > > > ------------------------------------------------------------------------ > ¿ Ya conoces el mejor buscador? Haz clic aquí > <http://g.msn.com/8HMAESMX/2728??PS=47575>Corregido y > aumentado: Live Search en Prodigy/MSN > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > <http://sourceforge.net/powerbar/db2/> > _______________________________________________ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > <http://sourceforge.net/powerbar/db2/> > _______________________________________________ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > >------------------------------------------------------------------------ > >------------------------------------------------------------------------- >This SF.net email is sponsored by DB2 Express >Download DB2 Express C - the FREE version of DB2 express and take >control of your XML. No limits. Just data. Click to get it now. >http://sourceforge.net/powerbar/db2/ > >------------------------------------------------------------------------ > >_______________________________________________ >Jump-pilot-devel mailing list >Jump-pilot-devel@lists.sourceforge.net >https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel