Re: New tile unref logic and various leak fixes
- From: Jiří Techet <techet gmail com>
- To: Pierre-Luc Beaudoin <pierre-luc pierlux com>
- Cc: libchamplain-list gnome org
- Subject: Re: New tile unref logic and various leak fixes
- Date: Thu, 18 Mar 2010 12:05:42 +0100
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]