Thank you, Jesse, for your work and the informations. That might be a
hint for me to have a closer look at.
 
When I detected the problem first, I was not using uDIG as an RCP
application but was using parts (plugins) of uDIG (seen from the user's
point of view only the map editor and the layers view) in another RPC
application.
But I repeated what I did with the "whole uDIG" as an RPC application,
and I could reproduce the error. Doing so I created a command which
added the layers (before it removed the old ones). This was started from
within Eclipse with no special settings set (except those being part of
the uDIG SDK). A plugin with this command was the only enhancement to
uDIG. I'm running on Windows XP Professional.
 
Cheers,
  Michael
 
________________________________

Von: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Im Auftrag von Jesse
Eichar
Gesendet: Donnerstag, 7. Dezember 2006 23:44
An: User-friendly Desktop Internet GIS
Betreff: Re: AW: AW: [udig-devel] Heap space error adding/removing
graphicallayers


I have spent a good portion of today profiling uDig and found something
strange.  As one adds and remove layers the Heap Size keeps growing and
growing and growing.  However if the garbage collector is ran the heap
size goes right back down.  It seems that it is the byte arrays in the
BufferedImages that are taking a while to clear up.  Perhaps if I pool
them better rather than always recreating them it will help the heap
problem.  But it seems to me that the Garbage collector should kick in
before a heap space error occurs.  ( I haven't been able to reproduce
the heap space error yet...  I've added and removed 10 shapefile layers
probably 30 times without problems.  And I have the heap space set to
the  default Java size.   


I have tested on both windows and OSX.  I did the profiling on OSX but
the performance seemed even better on Windows (shock!).


What is your configuration?  Are there any other variable that I can
look at?


Jesse






On 7-Dec-06, at 6:05 AM, Jesse Eichar wrote:


        Thanks Michael,  I will look in to the problem and will get back
to you this evening on what I found. 
        
        
        Jesse 
        
        
        On 7-Dec-06, at 12:26 AM, Schneider, Michael wrote:


                Jesse, thanks for the answers.
                Sure, it's better to use one large shapefile instead of
several smaller ones. I tried that after detecting the heap space
problem with the gif files.
                 
                I think it is not the maximal amount of memory which
causes the problem, but perhaps a memory leak or memory fragmentation:
Even when adding and removing only one single layer I detect that
problem after having added and removed a layer more than 30 times.
                 
                Michael
                 
________________________________

                Von: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Im Auftrag von Jesse
Eichar
                Gesendet: Mittwoch, 6. Dezember 2006 18:13
                An: User-friendly Desktop Internet GIS
                Betreff: Re: AW: [udig-devel] Heap space error
adding/removing graphical layers
                
                
                Hi, 
                
                
                There is a limitation to the number of layers that can
be realistically added because currently each layer has a buffer that it
writes to that is the size of the screen and is in 32-bit colour.
Obviously a good chunk of memory especially when the screen is large.
So it is better to have large shapefiles than many shapefiles because
the Shapefile renderer is highly optimized for large shapefiles and
performance will be much better rendering a 1 GB shapefile than 100
100KB shapefiles. 
                
                
                This decision was part of the design because it allows
some fun optimizations (for example enabling and disabling layers) but
as of 1.1.1 we will have an "intelligent" system that will set a maximum
number of buffers depending on the memory size so that this issue will
no longer be a problem.
                
                
                Jesse
                
                
                On 6-Dec-06, at 3:54 AM, Schneider, Michael wrote:


                        Is grid coverage also involved when the layers
are created from shapefiles?
                        Using a bunch of shapefile layers instead of the
GIF layers I also ran into the same heap space error after adding and
removing the layers several times. (Each shapefile only had one single
feature, a point in this case.)
                         
                        Michael

________________________________

                        Von: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Im Auftrag von Jesse
Eichar
                        Gesendet: Dienstag, 5. Dezember 2006 18:47
                        An: User-friendly Desktop Internet GIS
                        Betreff: Re: [udig-devel] Heap space error
adding/removing graphical layers
                        
                        
                        Hi

                        There are 2 main possibilities that I can think
of.

                        1.  Make sure that you are passing in a heap
space parameter to your application or increase it if you already are.
For example
                        -Xmx512M will assign 512 MB of memory to the
heap space of the JVM.  That should help with the problem.
                        2.  GridCoverage support is less than perfect at
the moment (although Jody is playing with a new version that shows
promise) and takes much more memory than it should.  So it is likely
that the World+Image is what is causing problems.  I'm not totally sure
what can be done about this.  But if it is causing problems then perhaps
some memory optimizations can be made.

                        Jesse

                        
                        
                        On 5-Dec-06, at 3:33 AM, Schneider, Michael
wrote:


                                Hello, 

                                using uDIG RC 5 I got a heap space error
after adding several layers. Each layer was created from a very small
graphic (png or gif file of less than 1 KB) together with a world file.
The same was true when each layer was created from a small shapefile.

                                The intension is as follows: The user
creates a list of locations and these locations are shown on a map. When
creating a new list of locations, the old locations are removed from the
map and the new ones are displayed.

                                I did it similar to the descriptions in
the FAQ "How do I create a map programmatically" and "I want to add an
image to the map, how do I do that?"

                                *       I created a map using
createCreateMapCommand 
                                *       I added about ten layers (see
above what the layers looked like) with either
createAddManyLayersCommand (all layers together) or
createAddLayerCommand (one layer at a time) 
                                *       When a new list was created I
removed the old layers using createDeleteLayer command, set the new
bounding box with createSetViewportBBoxCommand and added the new layers
to the map. 
                                

                                After doing these several times I run
into the heap space error. 
                                I also get this error when I only add
and remove one layer (i.e. location lists with only one entry), but it
takes longer to get the error.

                                I also tried it "the old way" with
MapFactory.processURLs - with a similar result: The error appeared as
well, but it took longer to get it.

                                Am I doing it the wrong way? Is there a
better way? 

                                I also wanted to try RC 6a. Are there
any changes related to the layers view and showing the map? In RC 5
after adding the layer to the map they were displayed at once. In RC 6a
I can see them in the catalog and in the project window, but they do not
appear in the layers view automatically and are not displayed. I'll have
a closer look to that to see whether I get the heap space error in RC 6a
as well.

                                Michael 

        
_______________________________________________
                                User-friendly Desktop Internet GIS
(uDig)
                                http://udig.refractions.net
        
http://lists.refractions.net/mailman/listinfo/udig-devel


                        _______________________________________________
                        User-friendly Desktop Internet GIS (uDig)
                        http://udig.refractions.net
        
http://lists.refractions.net/mailman/listinfo/udig-devel


                _______________________________________________
                User-friendly Desktop Internet GIS (uDig)
                http://udig.refractions.net
                http://lists.refractions.net/mailman/listinfo/udig-devel


        _______________________________________________
        User-friendly Desktop Internet GIS (uDig)
        http://udig.refractions.net
        http://lists.refractions.net/mailman/listinfo/udig-devel


_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel

Reply via email to