Hi
I have a question about improving performance
(I'm very happy already, I think is absolutely fast enough, its just that I
could improve by doing things differently)
I assume the is_in() function requires extra calculations and lookups which may
cost time as well calculating unnecessary rules
(That could already be a wrong assumption)
Maybe an expert could just say what would be better in general. No need to
prove or test. I tried myself some things which actually did not make a big
difference.
For example I moved the rules for buildings to the top of the style and
expected serious improvements, because buildings are the majority of polygons
in the PBF
But I gained only a little bit (3-5%? max) and even one out of 4 runs it was
even a bit slower. So mkgmap must be very optimized already was my conclusion
Question 1) 'unnecessary' processing rules
Answer A
Walk through 100 rules about highways when it's a waterway or railway and just
wait for rule 101
Answer B
Introduce an extra IF, which causes extra
calculation itself but skips the 100 rules
IF (highway = *) Then
Highway 1,2,3,4,5,6,7,8-100
END
Waterway = river [0x18 resolution 22]
Question 2) Help mkgmap to avoid calculation of possible expensive
calculations? Or is it already smart enough to not start the IS_IN() if "name =
*" failed already
Answer A
waterway = river & name = * & is_in(natural,
sea, any) = true [0x18 resolution 22]
Answer B
If (waterway = river) then
name = * & is_in(natural, sea,
any) = true [0x18 resolution 22]
End if
Thx,
Joris Bo
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev