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

Reply via email to