Commit: r1556: Add an index for rule matching.

Version 1556 was commited by steve on 2010-02-03 13:19:02 +0000 (Wed, 03 Feb 2010) BRANCH: style-speed Add an index for rule matching. Gives a useful speed increase. With the openmtb rules r18: We match 89 rules per element, down from 1300. Rule overhead 6.7s down from 11.3s on the test file.

On 03.02.2010 14:19, svn commit wrote:
Version 1556 was commited by steve on 2010-02-03 13:19:02 +0000 (Wed, 03 Feb 2010) BRANCH: style-speed
Add an index for rule matching.
Gives a useful speed increase.
With the openmtb rules r18: We match 89 rules per element, down from 1300. Rule overhead 6.7s down from 11.3s on the test file.
For Austria I had the following times: *trunk:* start: compilation 14:44:17 austria end compilation 14:49:50 austria = 5:33 *style-speed: *start compilation 14:50:15 austria end compilation 14:54:11 austria = 3:56 --- A style-file optimised for the old handling took more or less 3:10. So a large part of the speed decrease has been recovered. It seemed to be more effective on simple tiles, compared to tiles with very detailed coverage in osm. (and thus many more continue rules matching). Below Austria from West to East (East is more extensively mapped). I'll run it against the Netherlands to see if speed increase is less (very well mapped). 14:50:15 rule set prep time 0ms rule set prep time 32ms rule set prep time 218ms rule set prep time 0ms rule set prep time 32ms rule set prep time 0ms rule set prep time 0ms 91437 elements processed 7578984 rules applied 82.88749630893402 rules per element 97400 rules matched rule set prep time 0ms rule set prep time 0ms rule set prep time 31ms rule set prep time 0ms rule set prep time 31ms rule set prep time 0ms rule set prep time 0ms 149256 elements processed 12590971 rules applied 84.35822345500348 rules per element 155832 rules matched rule set prep time 0ms rule set prep time 0ms rule set prep time 31ms rule set prep time 0ms rule set prep time 31ms rule set prep time 0ms rule set prep time 0ms 257265 elements processed 19427991 rules applied 75.5174275552446 rules per element 269969 rules matched rule set prep time 0ms rule set prep time 0ms rule set prep time 94ms rule set prep time 0ms rule set prep time 62ms rule set prep time 0ms rule set prep time 0ms 314330 elements processed 23241670 rules applied 73.94034931441479 rules per element 329384 rules matched rule set prep time 0ms rule set prep time 0ms rule set prep time 31ms rule set prep time 16ms rule set prep time 15ms rule set prep time 16ms rule set prep time 0ms 398214 elements processed 29129653 rules applied 73.1507506014354 rules per element 428648 rules matched rule set prep time 0ms rule set prep time 0ms rule set prep time 46ms rule set prep time 0ms rule set prep time 31ms rule set prep time 0ms rule set prep time 0ms 518399 elements processed 36938029 rules applied 71.25405141599424 rules per element 553415 rules matched rule set prep time 0ms rule set prep time 0ms rule set prep time 46ms rule set prep time 0ms rule set prep time 15ms rule set prep time 0ms rule set prep time 0ms 759811 elements processed 54818035 rules applied 72.14693522468087 rules per element 800179 rules matched 14:54:11
_______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi
*trunk:* start: compilation 14:44:17 austria end compilation 14:49:50 austria = 5:33 *style-speed: *start compilation 14:50:15 austria end compilation 14:54:11 austria = 3:56
--- A style-file optimised for the old handling took more or less 3:10. So a large part of the speed decrease has been recovered. It seemed to
OK good, thanks for testing that. I've made one further change that will improve the time some more in some circumstances. I am a bit puzzled that there is even as much time difference left as I am finding that the time to apply the style is not a large part of the total time. I will have to look at Austria and the options that you use to see if there is something extra going on. ..Steve

Some more times: Netherlands (very small tiles --maxnodes 400 000, averaging around 3-5MB compiled per tile): trunk: start compilation 4:14:22 end compilation 4:35:58 speed (rev 1556): start compilation 15:11:59 end compilation 15:21:08 Germany (pretty large tiles --maxnodes 1 200 000, averaging around 15-20MB compiled per tile) trunk: start compilation 5:52:06 end compilation 6:35:51 speed (rev 1558): start compilation 15:50:20 end compilation 16:21:54 With style optimised for the old code, it had been around 22-23 minutes. It seems that the smaller the tile is, the more effective the speedup. In any case it is much faster than with trunk. Within Germany sometimes up to 115 rule matches, on my map legend, even 120: .... 1157 elements processed 139261 rules applied 120.3638720829732 rules per element 1399 rules matched
participants (3)
-
Felix Hartmann
-
Steve Ratcliffe
-
svn commit