Expression Performance was: [ka-Map-users] KaMap performance tuning]

Jan Hartmann j.l.h.hartmann at UVA.NL
Fri May 25 04:25:33 PDT 2007


Actually, it is in the documentation of the "expression" keyword in the 
"class" reference of the Mapfile reference 
(http://mapserver.gis.umn.edu/docs/reference/mapfile/class):

"As you might expect this level of complexity is slower to process" 
(i.e. logical expressions versus simple strings).

Jan

Stephen Woodbridge wrote:
> This showed up on the kaMap list but it seems more appropriate to the 
> mapserver list so I am forwarding it. Some times its the little things 
> that can kill performance, and they are not always obvious!
> 
> Thanks you Percy.
> 
> -Steve W
> 
> -------- Original Message --------
> Subject: [ka-Map-users] KaMap performance tuning
> Date: Thu, 24 May 2007 12:53:35 -0700
> From: percy <percyd at pdx.edu>
> To: ka-map-users at lists.maptools.org
> References: <200705231601.l4NG1GnU008459 at duke.maptools.org>
> 
> I recently was able to get an extremely complex geologic data shapefile 
> set to render much faster (after doing all of the other optimizations 
> mentioned by everyone else) by tuning the filter expressions.
> 
> I changed all class expressions from the following statement type
> CLASS
>  NAME 'Dominant:Clastic sediment;'
>  EXPRESSION ('[LithComp]' eq 'Dominant:Clastic sediment;')
>  STYLE
>   COLOR 255 255 0
>  END #STYLE
> END #CLASS
> 
> to
> 
> CLASS
>  NAME 'Dominant:Clastic sediment;'
>  EXPRESSION 'Dominant:Clastic sediment;'
> 
>  STYLE
>   COLOR 255 255 0
> 
>  END #STYLE
> END #CLASS
> 
> I was stunned at the performance increase this gave me, though it's 
> obvious why it helps so much (in hindsight). The only reason I was using 
> the former EXPRESSION statements was because I had used QGIS or AMEIN to 
> auto-generate the initial mapfile...
> 
> Hope this helps,
> Percy
> 
> 
> 
> Date: Tue, 22 May 2007 19:13:03 -0700
> From: Paul Ramsey <pramsey at refractions.net>
> Subject: Re: [ka-Map-users] KaMap performance tuning
> To: Jeff Dege <jdege at korterra.com>
> Cc: ka-map-users at lists.maptools.org
> Message-ID: <6207F842-AAF6-44EE-8A58-B08C960D4812 at refractions.net>
> Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
> 
> 10:1 speed advantage for PostGIS is nice and all, but seems unlikely,
> even to this PostGIS zealot...
> 
> Does your layer have a FILTER on it that uses the attributes? PostGIS
> does that great, shapefiles do it terribly.
> 
> I would expect on a very large spatial file (your 500MB example) the
> PostGIS r-tree will be balanced better than the quadtree .qix file,
> but that should provide incremental advantage, not massive
> advantage.  One possibility is that you're running out of depth in
> your quadtree, maybe tree bumping up the depth in your shptree call.
> 
> P
> 
> 
>>  
>>> We'd never had trouble with the performance of shapefiles, until we  
>>> had to deal with one that contained the California streets.    500MB 
>>> .shp file, 600MB .dbf file, and performance with it was dog  slow.
>>>
>>> We pulled out interstates, highways, and main roads, into separate  
>>> shapefiles, so that we didn't have to touch the streets data until  
>>> we were zoomed in tight, and performance was still dog slow when we  
>>> did.
>>>
>>> We split the streets shapefile into hundreds of separate tiles,  
>>> shptreed each, built a tileindex on the bunch, then shptreed the  
>>> tileindex, and performance was a good bit better, but still not  
>>> acceptable.
>>>
>>> The people I've been talking to have told me that when rendering  
>>> everything, shapefiles are faster, but when rending small subsets  of 
>>> the data, PostGIS can be considerably faster.  Particularly if  you 
>>> use it's simplify() function to tune the resolution of the data  
>>> returned to the scale of the map.  I've only begun experimenting  
>>> with this, but nothing in my experience so far contradicts this.
>>>
>>> Shp2img, rendering a map with an extent of .04 decimal degrees,  took 
>>> 17.198 seconds to render the streets layer using (tiled)  shapefiles, 
>>> it took 0.219 seconds to render the streets layer using  PostGIS.
>>>
>>>     



More information about the MapServer-users mailing list