[Marble-devel] [Patch] Add class TileId because int is not sufficient for higher zoom levels

Jens-Michael Hoffmann jensmh at gmx.de
Fri Apr 25 22:48:42 CEST 2008


Am Donnerstag, 24. April 2008 23:51:31 schrieb Torsten Rahn:
> On Thursday 24 April 2008 22:17:21 Jens-Michael Hoffmann wrote:
>
> Hi,
>
> I like the approach however I've also done some performance measurement and
> on my computer I get a performance difference between 15.9fps before
> applying the patch and 11.48 fps after applying the patch. That's a
> performance decrease of 28% which unfortunately isn't acceptable. :-/

I completely agree. Fortunately it was quite easy to fix this regression.
The fix is committed as we discussed on irc.

I'm now seeing a performance loss of 0.5% compared to the original situation.

> So we've got to find some less expensive solution here.
>
> Looking at the patch I'd bet that the problematic lines are in
> TileLoader.cpp line 183 ff as these get called very often during rendering:
>
> Your new implementation creates a new tileId object each time the method is
> called and searching the hash and the cache requires a lot of overhead by
> introducing a lot more rather expensive comparisons to do:

I think the original implementation of the hash function which used QString 
was the problem.

Best regards

Jens-Michael


More information about the Marble-devel mailing list