Re: New tile unref logic and various leak fixes



On Sat, Mar 13, 2010 at 00:58, Pierre-Luc Beaudoin
<pierre-luc pierlux com> wrote:
> On Fri, 2010-03-12 at 23:19 +0100, Jiří Techet wrote:
>> Please let me know if you'll apply the fixes. So far I haven't
>> received any feedback from you in this respect.
>
> Sure I will, my todo list was quite high becase of confoo.ca this week.
> I should have some time to look into them next week.
>
> Thanks for your fixes. :)
>
> Pierre-Luc
>

OK, no problem. By the way, I have committed several new fixes -
mainly performance-related improvements (I did some profiling of
libchamplain with oprofile and found out that
view_load_visible_tiles() is the main bottleneck so I concentrated on
this function). I'm quite satisfied with the performance now. The most
important commits are:

2b8a5e30
spiral loading - the previous loading pattern didn't do what it was supposed to

1bd883f7
call fill_tile() in idle function - because all times sum up in
view_load_visible_tiles() in the inner loop, it's better to move
fill_tile() outside, which makes view_load_visible_tiles() finish fast
(quite a noticeable change in full screen map).

26fa47ea
do not iterate through available tiles every time in the inner loop -
in full screen on 24' monitor, the loop is performed 3800-times just
for nothing! Create an array that maps which tiles are already loaded
and eliminate the loop completely

d9d5c8b7
time based reloading - you currently update viewport only when the map
moves by more than 100 pixels. However, when you scroll by mouse
slowly by less than 100 pixels, a white stripe appears at the border
and doesn't disappear until either you move by more than 100 pixels or
release the mouse button. Make the map reload at least 4-times a
second (this is a marginal overhead compared to fast panning, where
you have to update much more frequently even with the 100 pixel
margin)

8971d228
remove ChamplainZoomLevel - after looking at it again, I've realized
that this class is completely useless now...

+ millions of other minor fixes and improvements.

Time for reviewing the code - you'll be quite busy with that I'm
afraid ;-). By the way, there are some "fixes of fixes" commits of
mine - I could rebase the tree and squash them with the original
commits, but it depends whether you started looking at the code or not
- if you did, then it's better to leave the tree unchanged. Just let
me know.

Jiri


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]