Report on `views with many icons' profiling

Tomeu Vizoso tomeu at tomeuvizoso.net
Tue Jul 22 11:10:42 EDT 2008


On Tue, Jul 22, 2008 at 5:00 PM, riccardo <riccardo.lucchese at gmail.com> wrote:
> On Tue, 2008-07-22 at 11:54 +0200, Tomeu Vizoso wrote:
>> > I think one can say that there's only one high-level operation: the call
>> > to _set_view in HomeBox.py; what happens as a consequence(/`parallel
>> > effect') is the firing of expose events and thus all the time that
>> > cProfile assigns to cairo and that sysprof shows in geode_drv.so.
>>
>> Expose is just the rendering of the cairo surface into the window. Do
>> you know what proportion of the total time is expose?
> If I get it right the do_expose_event functions are taking 13.% of total
> time.
>
> While the function which is spending more time in cairo is
> do_paint_below_children of sugar/graphics/icon.py (27.6%).

Expected, drawing svg icons is slow. We can either optimize rsvg and
cairo or see if the caching strategy in icon.py can be improved.

>> > - use box2d for the freeform layout; I guess that any naive algorithm
>> > *handling* collision detection would perform worse than box2d and any
>> > non naive one (really handling collisions) isn't worth the time.
>>
>> Interesting, the current layout is a partial implementation of an algo
>> devised by Eben. Would be good if he explained what the goals are on
>> this regard and see which changes can be done that improve
>> performance.
> I have some experience from when I was porting ODE to use ATLAS
> functions; it really is difficult to handle collision detection fastly.

Nice to know. If you see an issue with the mesh view being too slow,
please talk with Eben and discuss an strategy about this.

Thanks,

Tomeu



More information about the Devel mailing list