[mapserver-dev] [performance] mapserver list expressions
Stephen Woodbridge
woodbri at swoodbridge.com
Fri Apr 5 06:26:26 PDT 2013
+1 on this change, just catching up on email. :)
-Steve W
On 4/4/2013 12:39 PM, thomas bonfort wrote:
> Daniel,
>
> done:
> https://github.com/mapserver/docs/blob/branch-6-2/en/development/rfc/ms-rfc-95.txt
> (will appear on the website shortly)
>
> I don't think it's worth calling for a new vote on the actual RFC,
> this email thread should suffice.
>
> regards,
> thomas
>
>
>
> On 4 April 2013 16:18, Daniel Morissette <dmorissette at mapgears.com
> <mailto:dmorissette at mapgears.com>> wrote:
>
> +1 on the addition.
>
> Bonus points if we could get a simple RFC to document and keep a
> trace of the addition. The contents of this email with a tiny bit
> of editing might be enough, it's just that having it in a RFC
> would be easier than looking for it in a ticket or the list
> archives, and would allow us to refer to this RFC as a one of the
> new features at release time.
>
> My 0.02$
>
> Daniel
>
>
>
> On 13-04-03 11:16 AM, thomas bonfort wrote:
>
> While profiling the openstreetmap renderings, I found a
> relatively low
> hanging performance speedup related to expressions when doing
> class
> filtering. The context relates to when you'd need to apply a
> given CLASS
> to multiple attribute values.
> Currently, to apply a single class to multiple values of an
> attribute,
> you can either use regular expressions, or use the IN
> operator, like this:
>
> LAYER
> ...
> CLASSITEM "type"
> CLASS
> EXPRESSION /primary|secondary|tertiary/ #regular
> expression on
> CLASSITEM
> EXPRESSION ("[type]" IN "primary,secondary,tertiary")
> #"complex"
> parser expression
> ...
> END
> END
>
> Both methods require quite a bit of overhead, either in the
> regex system
> calls, or by using quite a few mallocs when going through the
> IN parser
> operation.
>
> We can cut down on this overhead by adding a "list" expression
> type,
> denoted by the { } delimiters, where the previous layer
> definition becomes:
>
> LAYER
> ...
> CLASSITEM "type"
> CLASS
> EXPRESSION {primary,secondary,tertiary}
> ...
> END
> END
>
> The modifications to the code are fairly straightforward, and no
> backwards incompatibilities are expected as this is a new
> functionality
> that does not collide with previous mapserver expressions.
> The changes can be seen here:
> https://github.com/tbonfort/mapserver/commit/fae435d17b099485ab6792bfae3a7d8dd8992b4c
> . (you can ignore the changes to mapparser.*, they correct a
> bug in the
> IN parser and aren't related to the list operator)
>
> Our parser guru is OK with these changes, so I would like to
> vote to
> include this new expression for our 6.4 release.
>
> I'll start with my +1
>
> best regards,
> thomas
>
>
> _______________________________________________
> mapserver-dev mailing list
> mapserver-dev at lists.osgeo.org
> <mailto:mapserver-dev at lists.osgeo.org>
> http://lists.osgeo.org/mailman/listinfo/mapserver-dev
>
>
>
> --
> Daniel Morissette
> http://www.mapgears.com/
> Provider of Professional MapServer Support since 2000
>
>
> _______________________________________________
> mapserver-dev mailing list
> mapserver-dev at lists.osgeo.org <mailto:mapserver-dev at lists.osgeo.org>
> http://lists.osgeo.org/mailman/listinfo/mapserver-dev
>
>
>
>
> _______________________________________________
> mapserver-dev mailing list
> mapserver-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-dev/attachments/20130405/0ca4c322/attachment.html>
More information about the mapserver-dev
mailing list