[mapserver-users] Performance in regular expressions or an alternative way to select a list of features

Adrian Popa adrian_gh.popa at romtelecom.ro
Tue Jul 14 02:15:19 EDT 2009


Hello everyone,

Here's my problem: I'm trying to highlight segments from a line layer by 
using an expression in a specific class. This portion of the mapfile is 
dynamically generated and when it is done, it is sent to mapserver for 
rendering.
My problem is that I have to select between 10 - 400 features at a time 
and I noticed when I have a lot of features there is a severe 
performance degradation in mapserver (takes a lot of time to render or 
even times out).
Right now, my expression is built using regular expressions: something like:
*EXPRESSION /^ITEM1$|^ITEM2$|^ITEM3$|^ITEM4$/*
This works ok, but as I said has a performance penalty when you reach 
~400 items.  My data is selected from a shapefile layer which has about 
5500 items.

Since I wouldn't be using the regular expressions at full capacity (I'm 
matching the full name), I might rewrite the expression using something 
like:
*EXPRESSION ( ([NAME]=="ITEM1") OR ([NAME]=="ITEM2") OR 
([NAME]=="ITEM3") OR ([NAME]=="ITEM4") )*

 From the documentation I see that:
/Regular expression with MapServer work similarly to string comparison, 
but allow more complex operation. They are slower than pure string 
comparisons, but might be still faster than logical expression. As with 
the string comparison use regular expressions, a FILTERITEM or a 
CLASSITEM has to defined, respectively.

/I would like to know if there is an efficient way of selecting a list 
of elements from a layer, or what are your recommendations.

Also - have there been significant changes in performance for this issue 
from mapserver 4.10 (I am now migrating to mapserver 5.4)?

Thanks,
Adrian

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapserver-users/attachments/20090714/c64fcb67/attachment.html


More information about the mapserver-users mailing list