Re: [Geoserver-users] filter vs expression performance

2018-06-06 Thread Arnaud L.

Hi Jim

Le 01-06-18 à 16:51, Jim Hughes a écrit :

This is good question, and I'd be interested to know the answer.  As a
gut reaction, I don't think it'll matter too much.

That said, there are several variables about this which will be specific
to your use case.  The best general advice is probably to set up a way
to measure performance.  GeoSolutions has free training materials which
document using JMeter for testing just like this:
https://geoserver.geo-solutions.it/edu/en/enterprise/jmeter.html.


Thanks for the tips and the link.
Actually, I did not have too much time to spend in this, so I've set up 
a very simple test case, running hundreds of curl commands against the 
same WMS url but with the two different styles.

As you gyessed, there was evidence of a difference in rendering time.

Since this will be a low-load service. I'm happy with this conclusion 
and I'll just use the syntax that offers the best readability depending 
on the case.


Regards
--
Arnaud

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this 
list:
- Earning your support instead of buying it, but Ian Turton: 
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: 
http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: 
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users


Re: [Geoserver-users] filter vs expression performance

2018-06-01 Thread Jim Hughes

Hi Arnaud,

This is good question, and I'd be interested to know the answer.  As a 
gut reaction, I don't think it'll matter too much.


That said, there are several variables about this which will be specific 
to your use case.  The best general advice is probably to set up a way 
to measure performance.  GeoSolutions has free training materials which 
document using JMeter for testing just like this: 
https://geoserver.geo-solutions.it/edu/en/enterprise/jmeter.html.


Once you have a way to gather measurement, it might be worth reviewing 
the general GeoServer documentation for some of the best practices about 
deploying GeoServer in production: 
http://docs.geoserver.org/stable/en/user/production/index.html.  I'd 
specifically call out Marlin; I'd strongly suggest verifying that it is 
on via the GeoServer Status Page in the UI.


At this point, if you are using JMeter, you should be able to get an 
idea how about various changes are affecting performance.  Being able to 
test two versions of the style should give you confidence in your final 
choices.  (You can also need nerdy about testing the different scale 
denominator bits, etc, etc by making careful queries in JMeter.)


If you are still wondering about performance... the next step is diving 
in with a profiler.  I've used YourKit to learn how specific function 
where working some complex SLDs.  As a result of that, I was able to 
write custom CQL functions to speed up things.  (This last suggestion is 
non-trivial.)


I hope that helps.  If this is a business need, a number of companies 
support GeoServer commercially (http://geoserver.org/support/).


Cheers,

Jim

On 6/1/2018 5:39 AM, Arnaud L. wrote:

Hi list

I'm wrinting a new style and I have to make choices between filters 
and expressions. I was wondering which one would be more efficient in 
terms of rendering performance : 2 rules with static style, or one 
rule with dynamic style ?

One simple example would be (in ysld) :


Filter version, two rules :
rules:
- filter: ${railway = 'rail' AND tunnel <> 'yes'}
  symbolizers:
  - line:
  stroke-color: '#99'
rules:
- filter: ${railway = 'rail' AND tunnel = 'yes'}
  symbolizers:
  - line:
  stroke-color: '#DD'


Expression version, one rule, expression in style :
rules:
- filter: ${railway = 'rail'}
  symbolizers:
  - line:
  stroke-color: ${if_then_else(isNull(tunnel),'#99','#DD')}


I have mixed feelings about both. I can write filter expressions more 
easily because the syntax is simple, and I am not familiar with CQL. 
But I like the compacity of the expression version better.


Thanks for your thoughts !

--
Arnaud

-- 


Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Geoserver-users mailing list

Please make sure you read the following two resources before posting 
to this list:
- Earning your support instead of buying it, but Ian Turton: 
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: 
http://geoserver.org/comm/userlist-guidelines.html


If you want to request a feature or an improvement, also see this: 
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer 




Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users




--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this 
list:
- Earning your support instead of buying it, but Ian Turton: 
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: 
http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: 
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users


[Geoserver-users] filter vs expression performance

2018-06-01 Thread Arnaud L.

Hi list

I'm wrinting a new style and I have to make choices between filters and 
expressions. I was wondering which one would be more efficient in terms 
of rendering performance : 2 rules with static style, or one rule with 
dynamic style ?

One simple example would be (in ysld) :


Filter version, two rules :
rules:
- filter: ${railway = 'rail' AND tunnel <> 'yes'}
  symbolizers:
  - line:
  stroke-color: '#99'
rules:
- filter: ${railway = 'rail' AND tunnel = 'yes'}
  symbolizers:
  - line:
  stroke-color: '#DD'


Expression version, one rule, expression in style :
rules:
- filter: ${railway = 'rail'}
  symbolizers:
  - line:
  stroke-color: ${if_then_else(isNull(tunnel),'#99','#DD')}


I have mixed feelings about both. I can write filter expressions more 
easily because the syntax is simple, and I am not familiar with CQL. But 
I like the compacity of the expression version better.


Thanks for your thoughts !

--
Arnaud

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this 
list:
- Earning your support instead of buying it, but Ian Turton: 
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: 
http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: 
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users