Re: [Banshee-List] Hyena.Data.Gui.ListView performance



> Generally speaking, if you change the source you'll be completely redrawing
> the contents of the listview. But i think the optimisation he's talking
> about is for the case where you scroll the contents of the listview.
>
> In the case of scrolling by 1, only 1 row has to be removed and 1 new row
> added. What scott noticed is that the entire listview is cleared and N rows
> are added again each time. This is a little wasteful of memory/cpu. That's
> my understanding of it anyway, correct me if i'm wrong ;)

Precisely. By "performance" I just mean scrolling performance. I think
there is room to improve the scrolling code and make the scrolling
smoother. The profiling I did indicated that the rendering code is the
bottleneck, rather than the model stack (Model(Cache|Provider)). One
thing that occurred to me is to re-use any pixels which have already
been rendered as described above. Gabriel is quite right - if the user
is scrolling rapidly enough that the entire set of visible rows
change, this will not increase rendering performance. However, the
velocity of most people's scrolling is a bell-curve: they begin
slowly, ramp up, and then slow down to hone in on the item of
interest. By increasing the responsiveness of the list during these
slow moments when the user is paying most careful attention, we can
increase the perceived "snappiness" of the app. I am also interested
in reducing the rendering time of each row. Currently, the average row
rendering time is around 9ms. I'm sure we can find some ways to bring
this down. I won't have time to look at this code until at least this
weekend, but the more eyeballs go over this stuff, the better!


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