Hi Steve,

thanks for review, I've added a unit test to show why your version doesn't work.
I see no simple way to improve the index much more. I thought about a different 
approach:
Instead of doing all the calculations before any rule is really executed we 
might do this dynamically.
Each rule which changes or adds tags would point to a list of further rules 
which are to be checked. Only when such
a change really happens the additional rules are checked.
No idea if this can be implemented more efficiently than the current static 
index.

Gerd

________________________________________
Von: mkgmap-dev <[email protected]> im Auftrag von Steve 
Ratcliffe <[email protected]>
Gesendet: Dienstag, 24. April 2018 23:06:11
An: [email protected]
Betreff: Re: [mkgmap-dev] patch to improve style throughput


Hi Gerd

I don't think I understand any of this any more :(

It didn't seem right to extract the key from the keystring
so I tried without and the attached patch also passes all
the tests - I make no other claim!

Steve

> Hi Steve,
>
> I think I found a simple patch to improve the rule index. I've noticed that 
> the unpatched version often returns far more rules to check than expected.
> e.g. if an element has the tag a=3 and we have these 3 rules
> a=1 {...}
> a=2 & b=1 {...}
> a=3 & c=1 {...}
>
> all three are evaluated, in fact all rules which have a keystring beginning 
> with a= are returned by the index. The patch changes this so that rules which 
> cannot match are not
> returned. This makes style evaluation a bit faster.  I've tried it with a few 
> styles and some input files and found no changes in the output, also all unit 
> tests pass, so I hope I did not miss something.  What do you think?
>
> Gerd
>
>
>
> _______________________________________________
> mkgmap-dev mailing list
> [email protected]
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
>

_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Reply via email to