logo separator

[mkgmap-dev] [PATCH v2] LocationHook speedup

From Gerd Petermann gpetermann_muenchen at hotmail.com on Sat Dec 31 13:58:30 GMT 2011

I used another way to optimize that part. On my machine, the list() method is much faster than listFiles():

            String [] boundaryFileNames = boundaryDir.list();
            boolean foundBndFile = false;
            for (String s: boundaryFileNames){
                if (s.endsWith(".bnd")) {
                    foundBndFile = true;
            if (!foundBndFile) {
                log.error("Disable LocationHook because boundary directory contains files. Dir: "
                        + boundaryDir);
                return false;


I've found and fixed another performance bottleneck:
The init method of the LocationHook contained a check if there is any 
bounds file in the boundary directory. On my computer this check 
requires ~1200ms. This is done for each tile and must be perfomed once 
So attached patch saves additionally 1200ms for each tile :-)
> I tried to improve the first patch by removing anything not required in
> the Quadtree and by using a different internal data structure.
> I've seen performance improvements but please try and test yourself :-)
> The most time is now spend in the creation of the Quadtree. So if you
> want to search for more performance just start there.
> WanMil
>> Gerds patches inspired me to look for more things that could be improved.
>> I found that the Quadtree used in the LocationHook is not very optimal.
>> The patch is a first try to increase the performance. The time required
>> for the LocationHook is reduced by 10-50% which is great.
>> Warning: I haven't checked so far if the results are equal. So maybe
>> there are big bugs in the patch... (and the speedup comes from the poor
>> implementation)
>> I will do some more tests and optimizations but maybe some of you can
>> have a look on it, test it and comment it.
>> Have fun!
>> WanMil 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.mkgmap.org.uk/pipermail/mkgmap-dev/attachments/20111231/7380caeb/attachment.html 

More information about the mkgmap-dev mailing list